JSON を返し changed を遵守する
Module の結果プロトコルに従って応答します。
「JSON を返し changed を遵守する」はCoddyKit上の無料Ansible Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAnsible Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ansible Academyコースには全4レッスンが含まれています。
モジュールは JSON で応答します
モジュールが終了するときは、Ansible に JSON 形式の結果を渡す必要があります。これによって、コントローラーはホスト上で何が起きたかを把握できます。
exit_json で終了する
成功時には module.exit_json を呼び出します。結果を JSON として出力し、適切な終了コードでモジュールを正常に終了します。
module.exit_json(changed=True, name='web')changed キーが重要です
changed は常に正確に報告してください。これはシステムを変更したかどうかを Ansible に伝え、出力の ok と changed の表示を決めます。
module.exit_json(changed=False)変更前に状態を確認する
changed を正しく扱うには、まず現在の状態を読み取ります。すでに目標と一致している場合は、changed=False に設定して何もしません。
if current == desired:
module.exit_json(changed=False)追加データを返す
exit_json には任意のキーを追加でき、それらはタスクの結果に表示されます。ユーザーは後続の処理でそのデータを登録して再利用できます。
module.exit_json(changed=True, user_id=42)fail_json で失敗させる
問題が発生した場合は、明確なメッセージを添えて module.fail_json を呼び出します。Ansible はタスクを失敗として扱い、そのテキストを表示します。
module.fail_json(msg='API request timed out')単に出力するだけにしない
print や生の stdout は使用しないでください。Ansible が受け取るのは最後の JSON オブジェクトだけなので、余分な print が結果を 破損 させ、タスクが失敗します。
終了呼び出しは 1 回だけ
各モジュールは、exit_json または fail_json のいずれか 1 回だけで終了します。どちらも SystemExit を発生させるため、その後の処理は実行されません。
役立つメッセージを表示する
実行した内容を説明する、わかりやすい msg を結果に含めてください。適切なメッセージがあれば、わかりにくい実行結果も読みやすくなります。
module.exit_json(changed=True, msg='Created user web')組み込みモジュールと動作をそろえる
コアモジュールと同じような出力にします。changed を報告し、意味のあるフィールドを返し、理由を示して明確に失敗させてください。一貫性が信頼につながります。
結果がすべてを左右する
ハンドラー、条件分岐、登録済み変数はすべて、モジュールの JSON を読み取ります。changed を正しく設定することが、モジュールを Ansible の一員として適切に動作させる鍵です。
クイックチェック
何も変更しなかった場合に、モジュールが何を報告すべきか考えてみてください。
まとめ
成功時は exit_json、エラー時は fail_json で終了し、changed を正直に報告して、生の出力を決して表示しません。これがモジュールの結果プロトコルです。📦
よくある質問
「JSON を返し changed を遵守する」レッスンは無料ですか?
はい。「JSON を返し changed を遵守する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ansible Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ansible Academyコースには全4レッスンが含まれています。
「JSON を返し changed を遵守する」で何を学びますか?
Module の結果プロトコルに従って応答します。 ブラウザで直接実行するハンズオンコードでAnsible Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Ansible Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAnsible Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「JSON を返し changed を遵守する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAnsible Academyレッスンでコードを書いて実行できますか?
はい。すべてのAnsible Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- カスタム Module を作成するタイミング
- AnsibleModule と Argument Spec
- JSON を返し changed を遵守する
- Module で Check Mode をサポートする