AnsibleModule と Argument Spec
Module の入力を定義し、検証します。
「AnsibleModule と Argument Spec」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
AnsibleModule の紹介
AnsibleModule クラスは、モジュールを作るためのツールキットです。Ansible から渡された引数を解析して検証し、結果を返すためのヘルパーを提供します。
from ansible.module_utils.basic import AnsibleModuleargument_spec マップ
モジュールが受け付けるすべての入力を、argument_spec ディクショナリに記述します。Ansible はこれを読み取り、ユーザーが渡した値を検証します。
argument_spec=dict(
name=dict(type='str', required=True)
)各引数に型を指定する
type に str、int、bool、list、dict などを設定します。Ansible はコードが実行される前に、入力を適切な型へ変換し、不正な入力を拒否します。
count=dict(type='int', default=1)必須の項目を指定する
required=True を追加すると、ユーザーがその引数を指定し忘れた場合に、Ansible が明確なエラーを出して停止します。防御的なチェックは必要ありません。
path=dict(type='str', required=True)適切なデフォルト値を指定する
default を使うと、省略可能な引数に自動的に値を設定できます。ユーザーは変更したい項目だけを指定すれば済みます。
state=dict(type='str', default='present')有効な選択肢に制限する
choices のリストで、引数に指定できる値を制限します。それ以外の値は、分かりやすいメッセージとともに事前に拒否されます。
state=dict(choices=['present', 'absent'])モジュールオブジェクトを構築する
仕様を AnsibleModule に渡してオブジェクトを作成します。ここからは、すべての入力が module.params に安全に格納されます。
module = AnsibleModule(argument_spec=argument_spec)検証済みの入力を読み取る
module.params から引数にアクセスします。これは通常のディクショナリで、値はすでに型変換と検証が済んでいるため、そのまま使用できます。
name = module.params['name']引数間のルール
2つの引数を必ず一緒に指定する、または同時に指定できないようにする必要がありますか。その場合は required_together や mutually_exclusive などのルールを AnsibleModule に渡すと、適用してくれます。
mutually_exclusive=[['src', 'content']]no_log で秘密情報を隠す
機密性の高い入力に no_log=True を指定すると、パスワードが Ansible のログや詳細出力に表示されなくなります。
password=dict(type='str', no_log=True)仕様に処理を任せる
優れた argument_spec があれば、手作業による大量の入力検証は不要になります。入力を一度定義するだけで、型、エラー処理、ドキュメントを Ansible が自動的に処理してくれます。
クイックチェック
ユーザーの入力が、どのようにモジュールのコードへ渡されるか考えてみてください。
まとめ
入力を argument_spec で型、デフォルト値、必須指定、選択肢とともに定義し、AnsibleModule を構築してから、module.params から検証済みの値を読み取ります。✅
よくある質問
「AnsibleModule と Argument Spec」レッスンは無料ですか?
はい。「AnsibleModule と Argument Spec」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「AnsibleModule と Argument Spec」で何を学びますか?
Module の入力を定義し、検証します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「AnsibleModule と Argument Spec」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- カスタム Module を作成するタイミング
- AnsibleModule と Argument Spec
- JSON を返し changed を遵守する
- Module で Check Mode をサポートする