Ansible : Use Playbook (when)2024/07/31 |
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. |
ubuntu@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 "apache2 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.51] ok: [10.0.0.52] TASK [index file exists or not] ************************************************ changed: [10.0.0.52] changed: [10.0.0.51] TASK [put index.html] ********************************************************** skipping: [10.0.0.51] skipping: [10.0.0.52] PLAY RECAP ********************************************************************* 10.0.0.51 : ok=2 changed=1 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0 10.0.0.52 : ok=2 changed=1 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0 # verify ubuntu@dlp:~$ ansible target_servers -m command -a "ls -l /var/www/html/index.html" 10.0.0.52 | CHANGED | rc=0 >> -rw-r--r-- 1 root root 10671 Jul 31 00:14 /var/www/html/index.html 10.0.0.51 | CHANGED | rc=0 >> -rw-r--r-- 1 root root 10671 Jul 31 00:14 /var/www/html/index.html |
Sponsored Link |