ansible是一个基于Python开发的自动化运维工具
ansible的功能实现基于SSH远程连接服务
ansible可以实现批量系统配置,批量软件部署,批量文件拷贝,批量运行命令等功能
特点:
1)不需要单独安装客户端,基于系统自带的sshd服务,sshd就相当于ansible的客户端
2)不需要服务端
3)需要依靠大量的模块实现批量管理
4)配置文件/etc/ansible/ansible.cfg
管理端安装ansible(需要epel.repo源)
yum -y install epel*
yum -y install ansible
所有被管理端需要安装:
yum -y install libselinux-python(CentOS7默认已安装)
配置文件修改:
vim /etc/ansible/ansible.cfg
host_key_checking = False(将注释去掉,以防下图报错)
添加被管理端主机信息:
ansible_ssh_user:ssh连接的用户名
ansible_ssh_pass:ssh连接的密码
#如果设置了ssh密钥连接的话,hosts文件只配置IP即可。
ansible命令测试:
调用ansible内置的copy模块:
先创建一个临时测试文件:echo "111" >/tmp/cjk.txt
查看copy内容是否正确:
远程执行脚本测试:
#先将脚本分发到各个机器上去
echo "echo '测试成功!'" > /tmp/test.sh
ansible benn -m copy -a "src=/tmp/test.sh dest=/tmp/ mode=0755 backup=yes"
#注意:dest路径的写法,若是不存在的目录,结尾要加斜线(/tmp/),否则默认不会创建目标目录
#特别提示:
如果目标路径存在文件,并且目标文件和你想要copy的文件完全相同的话,也会导致ansilbe的copy功能失效
远程批量执行脚本
常用模块:每个模块就是一个功能
ansible-doc -l 查看所有的模块
ansible-doc -s service 查看指定模块用法