顾名思义,playbooks就像剧本同样,将你要作的事情先定义好,而后经过它来执行。这也是ansible一个强大的地方,能够经过它来作些复杂的应用部署。html
举个例子:apache
[root@test-201 ~]# cat test-playbook
服务器
- hosts: test tasks:ide
- name: 确认apache是否在运行service: name=httpd state=started12345spa
这是个很简单的playbooks,首先它指定了要操做的主机组是test,定义了一个名称:确认apache是否在运行,执行pkg=httpd state=latest动做。
执行以下命令ansible-playbook test-playbook,效果以下:debug
[root@test-201 ~]# ansible-playbook test-playbook orm
PLAY [test] ********************************************************************TASK [setup] *******************************************************************htm
ok: [10.2.31.203]ip
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'