Playbooks

顾名思义,playbooks就像剧本一样,将你要做的事情先定义好,然后通过它来执行。这也是ansible一个强大的地方,可以通过它来做些复杂的应用部署。

举个例子:


[root@test-201 ~]# cat test-playbook

- hosts: test  tasks:

- name: 确认apache是否在运行service: name=httpd state=started12345

这是个很简单的playbooks,首先它指定了要操作的主机组是test,定义了一个名称:确认apache是否在运行,执行pkg=httpd state=latest动作。 
执行如下命令ansible-playbook test-playbook,效果如下:



[root@test-201 ~]# ansible-playbook test-playbook 


PLAY [test] ********************************************************************TASK [setup] *******************************************************************

ok: [10.2.31.203]


TASK [确认apache是否在运行] ***********************************************************

ok: [10.2.31.203]


PLAY RECAP *********************************************************************

10.2.31.203                : ok=2    changed=0    unreachable=0    failed=0123456789101112



playbooks中文文档: http://ansible-tran.readthedocs.io/en/latest/docs/playbooks.html


小技巧:

1.有时候如果想直接操作某台服务器,但又没有在hosts里定义这台服务器时,可以使用如下命令:

ansible all -i ‘服务器ip,’ 
注意服务器ip后面要加个,

如 
ansible all -i ‘10.2.31.201,’ -u test -k -a ‘uptime’

2.有时候我忘记配了哪些主机和组,我又不想看配置文件,有没有什么命令查看?

显示所有的组

ansible localhost -m debug -a 'var=groups.keys()'1

显示所有的组和主机

ansible localhost -m debug -a 'var=groups'