表題の通り。Ansibleのcoreモジュールのひとつであるfailモジュールを使う。
■ 環境
- ansible 1.9.2
■ きっかけ
実行対象ホストのOSが対象外であった場合に以降のタスクを全て実行させたくない、というplaybookを書きたかったのだが、どうやれば良いのかいまいちわかっていなかった。
そういえば”failed_when“と書くことができるな…ということは”fail“させれば良いのか、と思い出し、ドキュメントをちゃんと見てみると”failモジュール“の存在を知った。”when“と共に書けば実現できそうである。
■ fail module
Docs >> fail – Fail with custom message
http://docs.ansible.com/ansible/fail_module.html
自身の場合は、”gather_facts“で収集した情報からOSに関する情報を取得し判断材料としている。
- name: OS check
fail: msg="not supported."
when:
- ansible_distribution == "CentOS"
- ansible_distribution_major_version|int < 7
上記は、CentOS 7以外は全てfailさせ実行を終了させている。
とりあえずやりたい事は実現できたので良しとする。
以上。