ansible-playbook使用实例(分发文件,执行脚本)

ansible-playbook使用实例
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

执行playbook
ansible-playbook -C change.yml
-C 预执行,可以看到执行后会有什么变化,但不会再远程主机上实际执行这些操作

实际执行:
ansible-playbook change.yml