Ansible Documentation
include_tasks – Dynamically include a task list機能
現在の playbook の実行中に別ファイルのタスクを取り込むパラメータ
パラメータ | 選択肢/ Default | 説明 |
---|---|---|
file | - | タスクを取り込むファイル名 |
free-form | - | file: を指定しないでタスクを取り込むときのファイル名 |
例
■ シンプルな例メインスクリプト
--- - hosts: all tasks: - name: 前メッセージ debug: msg: "取り込み前" - name: タスクの取り込み include_tasks: sample.yml when: ansible_facts['distribution'] == "CentOS" - name: 後メッセージ debug: msg: "取り込み後"sample.yml
- name: ディストリビューション名を表示 debug: var: ansible_facts['distribution']実行結果
ansibleman@ubuntu-pc:~/ansible/include_tasks$ ansible-playbook -i hosts.yml site.yml
PLAY [all] ***********************************************************************************************************************
TASK [Gathering Facts] ***********************************************************************************************************
ok: [node-c0706]
TASK [前メッセージ] ********************************************************************************************************************
ok: [node-c0706] => {
"msg": "取り込み前"
}
TASK [タスクの取り込み] ******************************************************************************************************************
included: /home/ansibleman/ansible/include_tasks/sample.yml for node-c0706
TASK [ディストリビューション名を表示] ***********************************************************************************************************
ok: [node-c0706] => {
"ansible_facts['distribution']": "CentOS"
}
TASK [後メッセージ] ********************************************************************************************************************
ok: [node-c0706] => {
"msg": "取り込み後"
}
PLAY RECAP ***********************************************************************************************************************
node-c0706 : ok=5 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ansibleman@ubuntu-pc:~/ansible/include_tasks$
■ 取り込むファイル名に変数を使用した例メインスクリプト
--- - hosts: all tasks: - name: タスクの取り込み include_tasks: file: "{{ ansible_facts['distribution'] }}.yml"CentOS.yml
- name: ディストリビューション名を表示 debug: var: ansible_facts['distribution']実行結果 : 実行時に "{{ ansible_facts['distribution'] }}.yml → CenOS.yml に変換されたことが確認できる
ansibleman@ubuntu-pc:~/ansible/include_tasks$ ansible-playbook -i hosts.yml site.yml
PLAY [all] ***********************************************************************************************************************
TASK [Gathering Facts] ***********************************************************************************************************
ok: [node-c0706]
TASK [タスクの取り込み] ******************************************************************************************************************
included: /home/ansibleman/ansible/include_tasks/CentOS.yml for node-c0706
TASK [ディストリビューション名を表示] ***********************************************************************************************************
ok: [node-c0706] => {
"ansible_facts['distribution']": "CentOS"
}
PLAY RECAP ***********************************************************************************************************************
node-c0706 : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ansibleman@ubuntu-pc:~/ansible/include_tasks$
■ loop ディレクティブを使用した例メインスクリプト
--- - hosts: all tasks: - name: タスクの取り込み include_tasks: sample.yml loop: - 1 - 2 - 3sample.yml
- name: ループの回数を表示 debug: var: item実行結果
ansibleman@ubuntu-pc:~/ansible/include_tasks$ ansible-playbook -i hosts.yml site.yml
PLAY [all] ***********************************************************************************************************************
TASK [Gathering Facts] ***********************************************************************************************************
ok: [node-c0706]
TASK [タスクの取り込み] ******************************************************************************************************************
included: /home/ansibleman/ansible/include_tasks/sample.yml for node-c0706
included: /home/ansibleman/ansible/include_tasks/sample.yml for node-c0706
included: /home/ansibleman/ansible/include_tasks/sample.yml for node-c0706
TASK [ループの回数を表示] *****************************************************************************************************************
ok: [node-c0706] => {
"item": 1
}
TASK [ループの回数を表示] *****************************************************************************************************************
ok: [node-c0706] => {
"item": 2
}
TASK [ループの回数を表示] *****************************************************************************************************************
ok: [node-c0706] => {
"item": 3
}
PLAY RECAP ***********************************************************************************************************************
node-c0706 : ok=7 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ansibleman@ubuntu-pc:~/ansible/include_tasks$