0Pricing
DevOps Bootcamp · レッスン

JSON を返し changed を遵守する

Module の結果プロトコルに従って応答します。

「JSON を返し changed を遵守する」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全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チューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。

「JSON を返し changed を遵守する」で何を学びますか?

Module の結果プロトコルに従って応答します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

DevOps Bootcampを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「JSON を返し changed を遵守する」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDevOps Bootcampレッスンでコードを書いて実行できますか?

はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. カスタム Module を作成するタイミング
  2. AnsibleModule と Argument Spec
  3. JSON を返し changed を遵守する
  4. Module で Check Mode をサポートする
← DevOps Bootcampに戻る