カスタム Module を作成するタイミング
既存の Module では埋められない不足を見極めます。
「カスタム Module を作成するタイミング」はCoddyKit上の無料Ansible Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAnsible Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ansible Academyコースには全4レッスンが含まれています。
組み込み機能では足りないとき
Ansible には数千のモジュールがありますが、必要に合うものがない場合もあります。その不足を補うのが、まさにカスタムモジュールの役割です。
作る前に検索する
まずは必ず Galaxy とドキュメントを確認してください。コミュニティコレクションが、扱いにくい API をすでにラップしていることが多く、その場合はコードを1行も書かずに済みます。
shell モジュールの兆候
プレイブックが出力を解析する command や shell の呼び出しだらけなら、それはサインです。モジュールを使えば、その複雑さをすっきりした引数の背後に隠せます。
ansible.builtin.command: myapp create --name web得られない冪等性
生の shell タスクは毎回 changed と報告します。本物のモジュールなら最初に現在の状態を確認するため、shell では実現できない冪等性を得られます。
カスタム API をラップする
社内ツールや、まだモジュールが存在しない REST API を使っているかもしれません。カスタムモジュールを作ると、その連携を整理された再利用可能な1つのタスクにできます。
モジュールは対象ホストで実行される
モジュールは管理対象ノード上で実行され、制御マシン上では実行されないことを覚えておいてください。そのため、Python と必要なライブラリがリモートホストに存在している必要があります。
フィルターとプラグインは異なる
すべての不足をモジュールで解決する必要はありません。テンプレート内でのデータ変換はフィルタープラグインの仕事であり、モジュールはホスト上で実際の処理を行います。
モジュールを配置する場所
プレイブックの隣にある library フォルダーに単一のファイルを置けば、Ansible が自動的に見つけてくれます。最初はパッケージ化も必要ありません。
myproject/
library/
my_module.py
playbook.ymlデフォルトは Python
多くのモジュールが Python で書かれているのは、Ansible が Python 用のヘルパーライブラリを提供しているためです。他の言語も使えますが、このサポートは利用できません。
1つのモジュールに集中させる
組み込みモジュールと同じように、独自のモジュールも1つの仕事をしっかりこなすべきです。関係のない5つの処理を、1つの巨大なファイルに詰め込むのは避けてください。
モジュールの契約
すべてのモジュールは、JSON の引数を受け取り、処理を実行し、JSON の結果を返すという契約に従います。これを習得すれば、どのようなものでも構築できます。
クイックチェック
独自のモジュールを書く本当の理由について考えてみてください。
まとめ
検索しても解決できず、shell や組み込みモジュールでは得られない冪等性と再利用可能な処理が必要な場合にのみ、カスタムモジュールを作成してください。役割は絞り込みましょう。🛠️
よくある質問
「カスタム Module を作成するタイミング」レッスンは無料ですか?
はい。「カスタム Module を作成するタイミング」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ansible Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ansible Academyコースには全4レッスンが含まれています。
「カスタム Module を作成するタイミング」で何を学びますか?
既存の Module では埋められない不足を見極めます。 ブラウザで直接実行するハンズオンコードでAnsible Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Ansible Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAnsible Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「カスタム Module を作成するタイミング」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAnsible Academyレッスンでコードを書いて実行できますか?
はい。すべてのAnsible Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- カスタム Module を作成するタイミング
- AnsibleModule と Argument Spec
- JSON を返し changed を遵守する
- Module で Check Mode をサポートする