Ansible介绍

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

实验环境
服务端在主机ip 192.168.43.233
       这边咱们控制了一台主机 192.168.43.223```

另一台主机只用安装ansible就行了

![](https://s1.51cto.com/images/blog/201908/14/9f10fa409f8a36da71e661836e9ccedb.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

服务端
下载ansible
yum install -y ansible
首先使用ssh生成公钥和私钥

ssh-keygen -t rsa : 默认生成在root家目录.ssh目录下

![](https://s1.51cto.com/images/blog/201908/14/d3c939332f03f06b513e0dff14cf213c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

ssh-copy-id -i 公钥 [email protected]
然后输入密码下次登录就不需要密码了
成功登录后exit退出来就行了

![](https://s1.51cto.com/images/blog/201908/14/252f20b31bf1b6d1a3c34791e9705f52.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![](https://s1.51cto.com/images/blog/201908/14/fea727fda161cfff603354e9c2b10fb3.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

然后修改配置文件
vim /etc/ansible/hosts
[webservers] #加一个组名
192.168.43.233
wq退出并保存
![](https://s1.51cto.com/images/blog/201908/14/4f77c8c6c139b1daa50680311410f00a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![](https://s1.51cto.com/images/blog/201908/14/8138966873f4910cb48376a7ffc02094.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

ansible -m ping "组名" 来查看是否通,如下图成功了


![](https://s1.51cto.com/images/blog/201908/14/895f55c4e00a3df6839fcdf54940c3f6.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

ping成功就可以直接操作另一台机器了

![](https://s1.51cto.com/images/blog/201908/14/2723b530c4e8c58b2e81a3beda4e71da.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

服务就搭建完成了
然后主机就可以对另一台机器进行操作
ansible webservers(组名) -u root -a(后面接参数)“reboot”
比如说让这两台虚拟机重启都是可以的