作者:黄胜
PLAYBOOK剧本管理
介绍:把所有操作按照ansible编程语法,放在文件里执行就是playbook。
ansible剧本编写格式说明
ansible剧本遵循PYyaml语法规则进行编写,yaml文件基本编写规则如下说明:
规则一:缩进
yaml使用一个固定的缩进风格表示数据层结构关系,需要每个缩进级别由两个空格组成。切记一定不能使用tab键进行缩进。
规则二:冒号
每个冒号后面一定要有一个空格(以冒号结尾不需要空格,表示文件路径的模版可以不需要空格)
规则三:短横线
想要表示列表项,使用一个短横杠加一个空格。多个项使用同样的缩进级别作为同一个列表的一部分
剧本测试:root@m01 /etc/ansible/yaml]# ansible-playbook -C /etc/ansible/yaml/p1.yml
说明:利用ansibl-playbook命令执行剧本,-C参数表示测试剧本任务执行,类似话剧的彩排一样。
例:ansible命令和playbook内容对照:
ansible oldboy -m systemd -a "name=crond.service enabled=no state=stopped "
ansible oldboy -m command -a "systemctl status crond"
ansible oldboy -m systemd -a "name=crond.service enabled=yes state=started"
编写剧本:
[root@m01 ~]# cat /etc/ansible/yaml/p6.yml
- hosts: backup
tasks:
- name: copy rsyncd.conf
copy: src=/data/rsyncd.conf.template dest=/etc/rsyncd.conf mode=0600 backup=yes
- name: create rsync.password
copy: content='rsync_backup:oldboy' dest=/etc/rsync.password mode=0600
- name: create user 用user模块 替代
command: useradd rsync -s /sbin/nologin -M
- name: create dir 用file模块替代
command: mkdir -p /backup
- name: shouquan 用file模块替代
command: chown -R rsync.rsync /backup/
- name: startup rsyncd
systemd: name='rsyncd.service' state=restarted enabled=yes
执行三部曲:
ansible-playbook --syntax-check /etc/ansible/yaml/p6.yml
ansible-playbook -C /etc/ansible/yaml/p6.yml
ansible-playbook /etc/ansible/yaml/p6.yml