一、简介 :ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:
(1)、连接插件connection plugins:负责和被监控端实现通信; (2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机; (3)、各种模块核心模块、command模块、自定义模块; (4)、借助于插件完成记录日志邮件等功能; (5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。 二、安装和使用 (1 ) yum install epel-release -y yum install ansible -y

(2)配置主机组: cd /etc/ansible/hosts 找到webservice,这个是主机组的名字,可以自定义,比如test,增加两台主机进入test组,分别是192.168.50.202和192.168.50.203 如下图所示
(3)配置从这个管理节点(安装了ansible)的节点到其他两台的面密码登陆 ssh-keygen //生成这台主机的公钥
将公钥发送到要管理的服务器
ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.50.202
ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.50.202
,此时已经可以实现从该主机到这两台主机的面密码登陆了 (4)使用ansible来操作和管理其他机器
命令格式如下:
ansible + 主机组名称 + -m + 模块名称 + -a + 参数
主机组名称,即hosts中定义的主机组名称 ,次数为test
-m 指使用模块,后加指定的模块名称
-a 指传给模块的参数
在不指定模块时,默认调用command模块,即执行命令的动作,伺候还有copy等等
如我们想看下test组上的服务器的/root下面有哪些文件,可以使用如下命令
ansible test -a “ls /root”//运行结果会显示test下的所有主机组的root下的文件
将本机的文件发给其他主机的做法 ansible test -m copy -a “src=/root/install.log dest=/tmp” 这个命令是将本地的/root/install.log发送到test组的/tmp下,执行的效果如下:
[[email protected] ~]# ansible test -m copy -a "src=/root/test.txt dest=/root"
192.168.50.202 | SUCCESS => {
"changed": true,
"checksum": "656f625555335decef0659baf45acc406cc311f5",
"dest": "/root/test.txt",
"failed": false,
"gid": 0,
"group": "root",
"md5sum": "1822a4a658cb424813c8bfc7422d9077",
"mode": "0644",
"owner": "root",
"secontext": "system_u:object_r:admin_home_t:s0",
"size": 14,
"src": "/root/.ansible/tmp/ansible-tmp-1512651368.98-190797399495490/source",
"state": "file",
"uid": 0
}
192.168.50.203 | SUCCESS => {
"changed": true,
此时表明已经发送成功,好了今天下介绍ansible简单应用到这里。