fail Module によるカスタム Assertion
明確なメッセージを表示して Play を停止します。
「fail Module によるカスタム Assertion」はCoddyKit上の無料Ansible Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAnsible Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ansible Academyコースには全4レッスンが含まれています。
明確なメッセージを表示して停止する
意図的に、分かりやすい理由を示して play を停止したい場合があります。fail モジュールはまさにそのためのものです。🛑
fail モジュール
ansible.builtin.fail は、分かりにくいエラーの代わりに、指定したカスタムメッセージを表示して現在のホストを停止します。
- name: Refuse unsupported OS
ansible.builtin.fail:
msg: "This playbook supports Ubuntu only"when で fail の実行を制御する
fail をそのまま使うと必ず停止するため、when と組み合わせます。指定したガード条件を満たした場合にのみ play が失敗します。
- ansible.builtin.fail:
msg: "app_version is required"
when: app_version is not defined早期に失敗させる
ガードチェックは play の先頭に配置します。入力の不備を早期に検出するほうが、デプロイの途中で失敗するよりも優れています。
assert モジュール
ansible.builtin.assert は検証に適した、より簡潔な方法です。that に条件を指定すると、いずれかが false の場合に失敗します。
- ansible.builtin.assert:
that:
- app_port is defined
- app_port | int > 1024assert のカスタムメッセージ
fail_msg と success_msg を assert に追加すると、成功時と失敗時の両方で分かりやすい出力を表示できます。実行するたびに明確なフィードバックが得られます。
- ansible.builtin.assert:
that: disk_free > 500
fail_msg: "Need at least 500MB free"
success_msg: "Disk space OK"assert で一度に多数をチェックする
assert の that にはリストを指定できます。すべての条件が true である必要があり、最初に false になった条件で、指定したメッセージとともにタスクが失敗します。
fail と assert の違い
when にロジックを記述して意図的に1回停止させる場合は fail を使い、複数の条件を簡潔に検証する場合は assert を使います。
値を埋め込む
msg には、状況を伝える変数を含められます。不正な値を表示すれば、オペレーターは何を修正すべきか正確に把握できます。
- ansible.builtin.fail:
msg: "Port {{ app_port }} is out of range"アサーションをドキュメントとして使う
適切なアサーションは、そのまま生きたドキュメントにもなります。playbook の期待事項を示し、同じ場所でそれを強制できます。📝
assert の quiet モード
assert の quiet を true に設定すると、条件ごとの出力を省略できます。条件を通過したことよりも、失敗だけを確認したい場合に便利です。
- ansible.builtin.assert:
that: app_port is defined
quiet: trueクイックチェック
適切なツールを選んでみましょう。
まとめ
fail モジュールは明確なメッセージを表示して play を停止し、assert は条件を簡潔に検証します。問題を先回りして playbook を守りましょう。✅
よくある質問
「fail Module によるカスタム Assertion」レッスンは無料ですか?
はい。「fail Module によるカスタム Assertion」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ansible Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ansible Academyコースには全4レッスンが含まれています。
「fail Module によるカスタム Assertion」で何を学びますか?
明確なメッセージを表示して Play を停止します。 ブラウザで直接実行するハンズオンコードでAnsible Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Ansible Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAnsible Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「fail Module によるカスタム Assertion」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAnsible Academyレッスンでコードを書いて実行できますか?
はい。すべてのAnsible Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- block でタスクをグループ化する
- rescue と always による Try / Catch
- 失敗を制御する:failed_when と ignore_errors
- fail Module によるカスタム Assertion