0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Ansible Playbook を途中で止めたい 〜 fail モジュールの活用

Last updated at Posted at 2022-07-26

Playbook を故意に止めたい

Ansible Playbook を作成していると、スクリプトの途中で強制的に止めたいときが、ままあります。
そんなときは、 fail という故意にスクリプトを失敗させることができるモジュールがありますので、これを使うとよいでしょう。

パラメーターは msg のみ。
この msg で失敗時に出力するメッセージを設定できます。
指定しない場合のデフォルトメッセージは
Failed as requested from task
「タスクからの要求に応じて失敗しました」といったところでしょうか。

使い方としては、

roles/foobar-server/tasks/main.yml
- name: planned failure
  fail:
    msg: デバッグ中:故意に失敗させています。

上記のように書いておくと、以下のように Fatal に失敗してくれます。

TASK [foobar-server : planned failure] *********************************************
fatal: [foobar-server]: FAILED! => {"changed": false, "msg": "デバッグ中:故意に失敗させています。"}

なお --check オプションを付けたときでも素直に失敗してくれます。

指定した条件のときに失敗させる

when ステートメントと組み合わせれば、所定の条件のときに後続の処理をすべて辞めることができます。
以下は必要なファイルがなかったときにスクリプトを止めるサンプルです。

tasks/main.yml
- name: foobar file exists
  stat: path=/etc/foobar.txt
  register: foobar_file

- name: planned failure
  fail:
    msg: FooBarファイルが存在しないため処理を中断します
  when: not foobar_file.stat.exists

みなさんも fail モジュールを使って Ansible Playbook をガンガン止めてみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?