0Pricing
Ansible Academy · レッスン

AnsibleModule と Argument Spec

Module の入力を定義し、検証します。

「AnsibleModule と Argument Spec」はCoddyKit上の無料Ansible Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAnsible Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ansible Academyコースには全4レッスンが含まれています。

AnsibleModule の紹介

AnsibleModule クラスは、モジュールを作るためのツールキットです。Ansible から渡された引数を解析して検証し、結果を返すためのヘルパーを提供します。

from ansible.module_utils.basic import AnsibleModule

argument_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チューター)、Ansible Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ansible Academyコースには全4レッスンが含まれています。

「AnsibleModule と Argument Spec」で何を学びますか?

Module の入力を定義し、検証します。 ブラウザで直接実行するハンズオンコードでAnsible Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Ansible Academyを始めるのに経験は必要ですか?

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

「AnsibleModule と Argument Spec」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

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