Ansible : Use Playbook (when)2021/06/16 |
|
To use [when], [failed_when], it's possible to write branch condition in Ansible Playbook.
|
|
| [1] | For example, create a Playbook which only if it does not exist [/var/www/html/index.html], create it on target hosts. |
|
[cent@dlp ~]$
vi playbook_sample.yml # set boolean with [failed_when], # create [index.html] if result of boolean is [1]
- hosts: target_servers
become: yes
become_method: sudo
tasks:
- name: index file exists or not
shell: test -f /var/www/html/index.html
ignore_errors: true
register: file_exists
failed_when: file_exists.rc not in [0, 1]
- name: put index.html
shell: echo "httpd index" > /var/www/html/index.html
when: file_exists.rc == 1
ansible-playbook playbook_sample.yml --ask-become-pass BECOME password: PLAY [target_servers] ********************************************************** TASK [Gathering Facts] ********************************************************* ok: [10.0.0.52] ok: [10.0.0.51] TASK [index file exists or not] ************************************************ changed: [10.0.0.51] changed: [10.0.0.52] TASK [put index.html] ********************************************************** changed: [10.0.0.51] changed: [10.0.0.52] PLAY RECAP ********************************************************************* 10.0.0.51 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 10.0.0.52 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 # verify [cent@dlp ~]$ curl 10.0.0.51 httpd index [cent@dlp ~]$ curl 10.0.0.52 httpd index |
| Sponsored Link |
|
|