测试环境
master 192.168.16.74
webserver1 192.168.16.70
webserver2 192.168.16.72
安装ansible
rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install ansible -y
修改主机与组配置,添加2台主机ip,同时定义2个ip到webservers组
vi /etc/ansible/hosts
192.168.16.70
192.168.16.72
[webservers]
192.168.16.70
192.168.16.72
通过ping模块测试主机连通性
ansible 192.168.16.70 -m ping -k
或者
ansible webservers -m ping -k
配置ssh互信。。。省略。。。在74生成秘钥然后下发
然后直接运行:ansible webservers -m ping
service模块,重启远程服务:
ansible 192.168.16.72 -m service -a "name=httpd state=restarted"
ansible 192.168.16.70 -m service -a "name=mysql state=restarted"
默认command模块,获取远程命令执行结果
ansible 192.168.16.72 -a ‘uptime‘
script模块
用74上的脚本an.sh去分析70上的文件/home/5-sec-status-2016-01-21_08-status:
ansible 192.168.16.70 -m script -a ‘/home/huangwei/shell/an.sh /home/5-sec-status-2016-01-21_08-status‘
shell模块
在74上执行70上的a.sh脚本
ansible 192.168.16.70 -m shell -a ‘/home/a.sh‘
copy模块
把监控机/home/a.py文件拷贝到webservers的/tmp目录下,并设置相关用户组权限
ansible webservers -m copy -a ‘src=/home/a.py dest=/tmp/ owner=root group=root mode=0755‘
stat模块
获取远程文件状态信息,包括atime,ctime,uid,gid等
ansible webservers -m stat -a "path=/etc/sysctl.conf"
setup, file等其他模块
查看服务文档:
ansible-doc service
ansible-doc ping
深入学习:playbook使用
参考 python自动化运维