Ansible介绍
ansible是一款的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:
1、连接插件connection plugins:负责和被监控端实现通信;
2、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
3、各种模块核心模块、command模块、自定义模块;
4、借助于插件完成记录日志邮件等功能;
5、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。
二、Ansible特性
1、no agents:不需要在被管控主机上安装任何客户端;
2、no server:无服务器端,使用时直接运行命令即可;
3、modules in any languages:基于模块工作,可使用任意语言开发模块;
4、yaml,not code:使用yaml语言定制剧本playbook;
5、ssh by default:基于SSH工作;
6、strong multi-tier solution:可实现多级指挥。
三、Ansible优点
1、轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;
2、批量任务执行可以写成脚本,而且不用分发到远程就可以执行;
3、使用python编写,维护更简单,ruby语法过于复杂;
4、支持sudo。
agentless,去中心化。
模块化部署,可自定义模块。
支持playbook。
幂等性,多次执行结果相同。
服务端主机ip 192.168.124.89
这里我们控制了两台主机分别是192.168.124.177和192.168.124.178
下载ansible
yum install -y ansible
首先用ssh生成公钥和私钥
ssh-keygen -t rsa : 默认生成在root家目录.ssh目录下
ssh-copy-id -i 私钥 root@192.168.124.177
然后输入密码下次登录就不需要密码了
这样的话,登录就不需要密码了
exit可以退出
配置文件
vim /etc/ansible/hosts
[webservers] #加一个组名
192.168.124.177
192.168.124.178
wq退出并保存
ansible -m ping "组名" 来查看是否通,如下图成功了
我们也可以生成在178主机下的认证的密钥
上面我们已经在177主机上生成了密钥,我们现在去root家目录.ssh目录下删除掉密钥看还可不可以登录
当177主机删除掉密钥就不可以登录了,显示连接失败
服务就搭建完成了
然后就可以对这两台机器进行操作啦
ansible webservers(组名) -u root -a(后面接参数)“reboot”
比如说让这两台虚拟机重启都是可以的啦