図解
DO は SKIP の反対語として、適当につけた名前。
DO
タスクが実行される。なぜならタスクは実行するためのもの。
結果は三種類に分かれる。
DO -> OK
タスクが成功。
DO -> CHANGED
タスクでなにか変化が起きた時のステータス。
たとえばファイルの新規設置をしたり、パーミッション変更をしたり。
DO -> FAILED
タスクが失敗した時のステータス。
その後の挙動は二つに分かれる。
FAILED -> EXIT
次以降のタスクにも進まず、そこで終了する。
FAILED -> IGNORING
失敗を無視して次のタスク実行に進む。
SKIP
タスクをスキップする。何もしない。つまり OK / CHANGED / FAILED の結果もない。
Playbookの例
- hosts:
- localhost
tasks:
- name: skip
debug:
msg: this task will be skipped
when: false
- name: do -> ok
debug:
msg: task has done and return ok
- name: do -> changed
debug:
msg: task has done and return changed
changed_when: yes
- name: do -> failed -> ignoring
debug:
msg: task has done, return failed, and continue to next task
failed_when: yes
ignore_errors: yes
- name: do -> failed -> exit
debug:
msg: task has done, return failed, and exit ( do not continue to next task )
failed_when: yes
- name: after failed task
debug:
msg: task will be not run because previous task has failed and exit
実行結果例
TASK [skip] **************************************************************************************************************************************
skipping: [localhost]
TASK [do -> ok] **********************************************************************************************************************************
ok: [localhost] => {
"msg": "task has done and return ok"
}
TASK [do -> changed] *****************************************************************************************************************************
changed: [localhost] => {
"msg": "task has done and return changed"
}
TASK [do -> failed -> ignoring] ******************************************************************************************************************
fatal: [localhost]: FAILED! => {
"msg": "task has done, return failed, and continue to next task"
}
...ignoring
TASK [do -> failed -> exit] **********************************************************************************************************************
fatal: [localhost]: FAILED! => {
"msg": "task has done, return failed, and exit ( do not continue to next task )"
}
to retry, use: --limit @/Users/yuma/projects/study/ansible/playbooks/task_state.retry
PLAY RECAP ***************************************************************************************************************************************
localhost : ok=4 changed=1 unreachable=0 failed=1
環境
- ansible 2.6.1
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。