Ansible之玩转常见运维场景(个人总结)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

一、环境描述

Ansible管理节点:192.168.1.101

被管理节点1192.168.1.135

被管理节点2192.168.1.128

 

二、Ansible实现

1、实现管理节点和被管理节点免ssh密码

思路:在ansible管理节点上生成一对ssh密钥,并把管理节点的公钥拷贝给被管理节点

1.1ansible管理节点生成ssh密钥

root@mysql02:~/.ssh# ssh-keygen

65180ABB76894A90B44CC0E7E90BAE98

1.2、拷贝ansible管理节点的公钥文件到被管理主机

1.2.1在管理节点上将公钥传送到被管理节点上

root@mysql02:~/.ssh# ssh-copy-id root@192.168.1.135

说明:id_rsa.pub文件为公钥文件,id_rsa为私钥文件


1.2.3、如果不做ssh免密码,在管理节点上进行让被管理节点执行hostname命令,则出现如下错误

29CEF00667C0471196BB4D622FC0EE4C

1.2.4、将管理节点的ssh公钥拷贝到被管理节点后,一切正常

FD6BFC16E6AF41D89357CD21CA10B72C

 

2、管理节点配置

2.1、查看ansilbe有哪些模块

#ansible-doc -l

E63DCFD4DBCA44F29053122E3201526E

6576FAFD700549C6B91B16CFD3725771

模块名称:command 作用:在远程节点上执行命令

 

2.2、定义主机和组

root@mysql02:~# cd /etc/ansible/

root@mysql02:/etc/ansible# vim hosts

E5874686BCF7419B8312CE6CD3587F29

目前只看hosts文件,其它先不用管。Hosts配置文件中的 [webservers][dbservers]这两行的作用是定义主机组,主机组名下可以写成员主机的IP(或域名),这是后可以把我需要管理的主机IP放到[webservers][dbservers]主机组下。目前,我这里的被管理节点有两台,都在主机组[webservers]里,IP192.168.1.135192.168.1.128

 

3、运维场景1(在被管理节点上执行相关的shell命令)

3.1、小栗子,截取IP地址

shell_cmd=`ifconfig |grep 'inet 地址'|grep '192.168.1' | grep -v 'grep' | awk '{print $2}'| tr -d "地址:"`

root@mysql02:/etc/ansible# ansible webservers -m command -a 'echo $shell_cmd'

6E8F66BF4509409E91AFC1E5AFC926BD

功能解析:将截取IP地址的命令赋值给shell_cmd变量,然后通过ansible执行'echo $shell_cmd'命令打印出截取到的IP地址。

 

参数说明:

其中webservers是主机组名称,在该主机组名称下的所有主机都会运行uptime命令,-m后是模块名称,-a 后是模块参数。

 

4、运维场景2(在管理节点上执行shell脚本,脚本在被管理节点上)

小栗子:

在被管理节点上的/root/目录中有osd.sh脚本,内容如下:

E4BC1EAF4CE34EE4933E9A9C3BF17CAF

root@mysql02:~# ansible webservers -m shell -a '/root/osd.sh'

47F36A682B4D4C2ABC9631EA5881FEF3

 


5、运维场景3(脚本在主控端(管理节点),但需要在客户机上执行,可以用script模块)

脚本动作如下:

1、在tmp目录下创建一个文件夹

2、在新创建的文件下创建一个txt文件

6D5CED5ED0224BFEA77BAE979B82B320

5.1、开始在ansible管理节点上运行

root@mysql02:~# ansible webservers -m script -a '/root/test.sh'

47D81CA532694212A5AEBF160F9B73B0

 

5.2、在被管理节点上验证

A550BC3F64F64ACE829D16762D3CFE15

结果:已成功完成任务

 

6、运维场景4(文件发布或称文件下发)

场景描述:在我的管理节点中的root目录里存在一个zabbix_3.0.4.orig.tar.gz文件,这个文件需要批量下发给被管理节点。

6.1ansible管理节点上开始执行

 root@mysql02:~# ansible webservers -m copy -a 'dest=/tmp src=/root/zabbix_3.0.4.orig.tar.gz'

1EBAA22294A74D4693AC21A04754DFB5

 

6.2、验证被管理节点

E77A57DB2249412388559A24F4D47A12

结果:文件下发成功

 

7、运维场景5(需要在被管理节点上安装软件,如通过:apt-getyum

场景描述:需要在被管理节点上安装ipython

root@mysql02:~# ansible webservers -m raw -a 'apt-get -y install ipython'

DAC029462A9B483C9A1BA9F7B25FCBDA

 

7.1ipython是否安装成功?验证一下

没安装之前

AE4EE350568B4913A90A9FBDDA0EDCFD

E2074462552C44E88F2F14EE3D8594F7

 

8、运维场景6(在被管理节点中,重启或停止或启动某个服务)

root@mysql02:~# ansible webservers -m service -a "name=zabbix-agent state=restarted"

场景描述:我这里需要重启zabbix-agent服务

ED544CAB34354A24B47DBB0052CBF9D9

本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1868219

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
20天前
|
运维 应用服务中间件 网络安全
自动化运维的新篇章:使用Ansible进行服务器配置管理
【10月更文挑战第34天】在现代IT基础设施的快速迭代中,自动化运维成为提升效率、确保一致性的关键手段。本文将通过介绍Ansible工具的使用,展示如何实现高效的服务器配置管理。从基础安装到高级应用,我们将一步步揭开自动化运维的神秘面纱,让你轻松掌握这一技术,为你的运维工作带来革命性的变化。
|
15天前
|
运维 应用服务中间件 Linux
自动化运维的利器:Ansible在配置管理中的应用
【10月更文挑战第39天】本文旨在通过深入浅出的方式,向读者展示如何利用Ansible这一强大的自动化工具来优化日常的运维工作。我们将从基础概念讲起,逐步深入到实战操作,不仅涵盖Ansible的核心功能,还会分享一些高级技巧和最佳实践。无论你是初学者还是有经验的运维人员,这篇文章都会为你提供有价值的信息,帮助你提升工作效率。
|
10天前
|
运维 监控 安全
自动化运维的利剑:Ansible在现代IT架构中的应用
在数字化浪潮中,企业对IT系统的敏捷性和可靠性要求日益提高。Ansible,一种简单但强大的自动化运维工具,正成为现代IT架构中不可或缺的一部分。它通过声明式编程语言YAM,简化了系统配置、应用部署和任务自动化的过程,显著提升了运维效率和准确性。本文将深入探讨Ansible的核心特性、应用场景以及如何有效整合进现有IT环境,为读者揭示其在自动化运维中的实用价值和未来发展潜力。
|
18天前
|
运维 Ubuntu 应用服务中间件
自动化运维工具Ansible的实战应用
【10月更文挑战第36天】在现代IT基础设施管理中,自动化运维已成为提升效率、减少人为错误的关键手段。本文通过介绍Ansible这一流行的自动化工具,旨在揭示其在简化日常运维任务中的实际应用价值。文章将围绕Ansible的核心概念、安装配置以及具体使用案例展开,帮助读者构建起自动化运维的初步认识,并激发对更深入内容的学习兴趣。
41 4
|
17天前
|
运维 安全 应用服务中间件
自动化运维的利剑:Ansible在配置管理中的应用
【10月更文挑战第37天】本文将深入探讨如何利用Ansible简化和自动化复杂的IT基础设施管理任务。我们将通过实际案例,展示如何用Ansible编写可重用的配置代码,以及这些代码如何帮助运维团队提高效率和减少人为错误。文章还将讨论如何构建Ansible playbook来自动部署应用、管理系统更新和执行常规维护任务。准备好深入了解这个强大的工具,让你的运维工作更加轻松吧!
32 2
|
18天前
|
运维 Devops 应用服务中间件
自动化运维的利器:Ansible实战指南
【10月更文挑战第36天】在快速迭代的数字时代,自动化运维成为提升效率、减少错误的关键。Ansible以其简洁性、易用性和强大的功能脱颖而出。本文将带你了解Ansible的核心组件,通过实际案例深入其应用,并探讨如何结合最佳实践优化你的自动化工作流程。无论你是新手还是有经验的运维人员,本指南都将为你提供宝贵的知识和技能。
|
18天前
|
运维 应用服务中间件 Linux
自动化运维:使用Ansible进行批量配置管理
【10月更文挑战第36天】在现代的IT基础设施中,高效和可靠的系统管理变得至关重要。本文将介绍如何使用Ansible这一强大的自动化工具来简化运维任务,包括安装、配置、部署应用程序以及管理系统更新。我们将探讨Ansible的核心概念,并通过实际代码示例展示其应用。通过阅读本文,读者将获得使用Ansible改善日常运维工作流程的实用知识。
|
23天前
|
运维 负载均衡 Ubuntu
自动化运维的利器:Ansible入门与实践
【10月更文挑战第31天】在当今快速发展的信息技术时代,高效的运维管理成为企业稳定运行的关键。本文将引导读者了解自动化运维工具Ansible的基础概念、安装步骤、基本使用,以及如何通过实际案例掌握其核心功能,从而提升工作效率和系统稳定性。
|
1月前
|
缓存 运维 应用服务中间件
自动化运维的新篇章:使用Ansible进行配置管理
【10月更文挑战第23天】随着云计算和微服务架构的兴起,传统的手动运维方式已经无法满足现代IT基础设施的需求。自动化运维成为提升效率、减少错误的关键。本文将介绍如何使用Ansible,一个流行的开源自动化工具,来简化配置管理和部署流程。我们将从基础概念出发,逐步深入到实战应用,展示如何通过编写Playbook来实现服务器的自动化配置和管理。
|
28天前
|
运维 应用服务中间件 调度
自动化运维:使用Ansible实现服务器批量管理
【10月更文挑战第26天】在当今快速发展的IT领域,自动化运维已成为提升效率、降低人为错误的关键技术手段。本文通过介绍如何使用Ansible这一强大的自动化工具,来简化和加速服务器的批量管理工作,旨在帮助读者理解自动化运维的核心概念和实践方法。文章将围绕Ansible的基础使用、配置管理、任务调度等方面展开,通过实际案例引导读者深入理解自动化运维的实现过程,最终达到提高运维效率和质量的目的。