Ansible : Use Playbook (include)2024/09/11 |
It's possible to include tasks or Playbooks from other Playbooks. |
|
[1] | If you'd like to include other tasks, write [include: ***] in [tasks] section. |
freebsd@dlp:~ $
vi playbook_sample.yml # include [included.yml] under the [tasks] directory - hosts: target_servers become: yes become_method: sudo tasks: - include_tasks: tasks/included.yml
freebsd@dlp:~ $
mkdir tasks freebsd@dlp:~ $ vi tasks/included.yml # OK to set task definition only - name: General packages are installed pkgng: name: "{{ packages }}" state: present vars: packages: - curl - wget - unzip tags: General_Packages 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 [include_tasks] ******************************************************************** included: /home/freebsd/tasks/included.yml for 10.0.0.51, 10.0.0.52 TASK [General packages are installed] *************************************************** ok: [10.0.0.52] ok: [10.0.0.51] PLAY RECAP ****************************************************************************** 10.0.0.51 : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 10.0.0.52 : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 |
[2] | For import other Playbooks, use [import_playbook]. In addition to [1], include a Playbook that [httpd] is running. |
freebsd@dlp:~ $
vi playbook_sample.yml - hosts: target_servers become: yes become_method: sudo tasks: - include_tasks: tasks/included.yml # include Playbook - import_playbook: httpd.yml
freebsd@dlp:~ $
vi httpd.yml - hosts: target_servers become: yes become_method: sudo tasks: - name: apache httpd is installed pkgng: name: apache24 state: present - name: apache httpd is running and enabled service: name: apache24 state: started enabled: yes 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 [include_tasks] ********************************************************************** included: /home/freebsd/tasks/included.yml for 10.0.0.51, 10.0.0.52 TASK [General packages are installed] ***************************************************** ok: [10.0.0.52] ok: [10.0.0.51] PLAY [target_servers] ********************************************************************* TASK [Gathering Facts] ******************************************************************** ok: [10.0.0.51] ok: [10.0.0.52] TASK [apache httpd is installed] ********************************************************** ok: [10.0.0.52] ok: [10.0.0.51] TASK [apache httpd is running and enabled] ************************************************ ok: [10.0.0.52] ok: [10.0.0.51] PLAY RECAP ******************************************************************************** 10.0.0.51 : ok=6 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 10.0.0.52 : ok=6 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 |
Sponsored Link |