ansible简介
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible是基于 paramiko 开发的,并且基于模块化工作,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来和远程主机通讯的。
ansible目前已经已经被红帽官方收购,是自动化运维工具中大家认可度最高的,并且上手容易,学习简单。是每位运维工程师必须掌握的技能之一。
控制端 | centos7 | 192.168.254.228 |
被控端 | centos7 | 192.168.254.226 |
被控端 | centos7 | 192.168.254.227 |
在控制端上搭建ansible
如果嫌麻烦可以去我写的脚本版搭建 传送门
首先要确保本机安装的是 Python 2.6 或者 Python 2.7 版本
使用命令查看版本
python -V
安装ansible
#
yum install epel-release -y
yum install -y ansible
在/etc/ansible/hosts文件末尾添加被管理主机
vim /etc/ansible/hosts
[web] #自定义组名,要写在括号中
192.168.254.226
192.168.254.227
[web]是一个组可以自定义,下面是web组包含的主机
在控制端主机生成密钥对,一直按回车即可
ssh-keygen -t rsa
把生成的密钥对发送给被控端主机,发送时会让你输入被控端主机的密码
ssh-copy-id 192.168.254.226
ssh-copy-id 192.168.254.227
验证
#查看两台主机的IP,查看web组中主机的IP
ansible web -m command -a 'ifconfig ens33'
-m #是需要调用的模块,如上面就是调用的command命令模块,也可以调用其他模块如shell模块:-m shell,默认使用 command 模块
-a #是你要执行的命令要用单引号括起来,如果调用的shell模块则可以使用通配符
-C
#模拟运行环境并进行预运行,可以进行查错测试
-v
#查看详细信息,同时支持-vvv
,-vvvv
可查看更详细信息