ansible-playbook使用实例
change.yml
- hosts: gameservers #要操作的主机组,在ansible的hosts文件中定义(默认安装位置/etc/ansible/hosts)
serial: 20 #开启的并发数
remote_user: root #进行操作的用户
tasks: #要进行的操作- name: fenfa #任务名称,自定义
copy: #使用复制模块,进行文件分发,从本地主机分发到远程主机
src: ‘{{ item.src }}’ #源文件,我这里有多个源文件,所有采用了定义变量的方法,可参考ansible循环内容http://www.ansible.com.cn/docs/playbooks_loops.html#standard-loops
dest: /usr/local/zabbix/scripts/ #文件复制的目标目录
owner: zabbix
group: zabbix
mode: 0700
with_items:- { src: ‘/home/ma/change_agent.sh’ } #源文件
- { src: ‘/home/ma/check_diskio.sh’ }
- { src: ‘/home/ma/get_diskname.sh’ }
- { src: ‘/home/ma/get_linecpu.sh’ }
- { src: ‘/home/ma/mysql_statu.sh’ }
- name: backup #使用command模块,复制备份远程主机上的文件
command: cp -a /usr/local/zabbix/etc/zabbix_agentd.conf /usr/local/zabbix/etc/zabbix_agentd.conf.bak - name: doshell #执行分发到目标主机的shell脚本
shell: /bin/bash /usr/local/zabbix/scripts/change_agent.sh - name: restart #用command模块进行服务重启
command: service zabbix_agentd restart
- name: fenfa #任务名称,自定义
执行playbook
ansible-playbook -C change.yml
-C 预执行,可以看到执行后会有什么变化,但不会再远程主机上实际执行这些操作
实际执行:
ansible-playbook change.yml