当主机为12时,才执行debug
[root@es1 playbook-demo]# cat demo10.yml
---
- hosts: webservers
tasks:
- name: Host 192.168.0.12 run this task
debug: msg="{{ansible_default_ipv4.address}}"
when: ansible_default_ipv4.address == '192.168.0.12'
[root@es1 playbook-demo]#
[root@es1 playbook-demo]# ansible-playbook demo10.yml --syntax-check
playbook: demo10.yml
[root@es1 playbook-demo]# ansible-playbook demo10.yml
PLAY [webservers] ********************************************************************************************************************************************************************************
TASK [Gathering Facts] ***************************************************************************************************************************************************************************
ok: [192.168.0.12]
ok: [192.168.0.13]
TASK [Host 192.168.1.12 run this task] ***********************************************************************************************************************************************************
skipping: [192.168.0.12]
skipping: [192.168.0.13]
PLAY RECAP ***************************************************************************************************************************************************************************************
192.168.0.12 : ok=1 changed=0 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0
192.168.0.13 : ok=1 changed=0 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0
[root@es1 playbook-demo]#
[root@es1 playbook-demo]# cat demo11.yml
---
- hosts: webservers
tasks:
- name: "echo CentOS 6 and Debian 7 systems"
command: echo 'aaa'
when: (ansible_distribution == "CentOS" and ansible_distribution_major_version == "7") or (ansible_distribution == "Debian" and ansible_distribution_major_version == "7")
[root@es1 playbook-demo]#
[root@es1 playbook-demo]#
[root@es1 playbook-demo]#
[root@es1 playbook-demo]# ansible-playbook demo11.yml --syntax-check
playbook: demo11.yml
[root@es1 playbook-demo]#
循环一个序列和循环一个字典:
[root@es1 playbook-demo]# cat demo12.yml
---
- hosts: webservers
gather_facts: no
tasks:
- name: with_list -> loop
debug:
msg: "{{ item }}"
loop:
- one
- two
[root@es1 playbook-demo]#
[root@es1 playbook-demo]# ansible-playbook demo12.yml --syntax-check
playbook: demo12.yml
[root@es1 playbook-demo]#
[root@es1 playbook-demo]# ansible-playbook demo12.yml
PLAY [webservers] *****************************************************************************************************************
TASK [with_list -> loop] **********************************************************************************************************
ok: [192.168.0.12] => (item=one) => {
"msg": "one"
}
ok: [192.168.0.12] => (item=two) => {
"msg": "two"
}
ok: [192.168.0.13] => (item=one) => {
"msg": "one"
}
ok: [192.168.0.13] => (item=two) => {
"msg": "two"
}
PLAY RECAP ************************************************************************************************************************
192.168.0.12 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
192.168.0.13 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[root@es1 playbook-demo]#
[root@es1 playbook-demo]# cat demo13.yml
---
- hosts: webservers
tasks:
- name: with_items
#debug: msg="{{item}}"
user: name={{item.name}} groups={{item.groups}} state=present
with_items:
- {name: 'zhangsan',groups: 'nginx'}
- {name: 'lisi',groups: 'nginx'}
[root@es1 playbook-demo]#
[root@es1 playbook-demo]#
[root@es1 playbook-demo]# ansible-playbook demo13.yml --syntax-check
playbook: demo13.yml
[root@es1 playbook-demo]#
[root@es1 playbook-demo]# ansible-playbook demo13.yml
PLAY [webservers] ********************************************************************************************************************************************************************************
TASK [Gathering Facts] ***************************************************************************************************************************************************************************
ok: [192.168.0.12]
ok: [192.168.0.13]
TASK [with_items] ********************************************************************************************************************************************************************************
changed: [192.168.0.12] => (item={u'name': u'zhangsan', u'groups': u'nginx'})
changed: [192.168.0.13] => (item={u'name': u'zhangsan', u'groups': u'nginx'})
changed: [192.168.0.12] => (item={u'name': u'lisi', u'groups': u'nginx'})
changed: [192.168.0.13] => (item={u'name': u'lisi', u'groups': u'nginx'})
PLAY RECAP ***************************************************************************************************************************************************************************************
192.168.0.12 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
192.168.0.13 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[root@es1 playbook-demo]#