このパッケージには、Ansible引数仕様プログラムのコードが含まれています。その主なオーディエンスは、モジュールのユーザードキュメントから直接引数仕様を生成することにより、モジュールの重複を減らすことを希望するAnsibleモジュールメンテナーです。
ドキュメント抽出器はPypiで公開されており、 pipを使用してインストールできます。
$ pipインストールansible-argspec-gen [base]#これにより、Ansible-baseがインストールされます
$ pipインストールansible-argspec-gen [ansible]#これにより、ansibleがインストールされます
$ pipインストールansible-argspec-gen#ansibleまたはインストールする必要があります
#自分自身をbaseします
前のコマンドが失敗しなかった場合、モジュールの更新を開始する準備ができています。ジェネレーターを初めて使用するときは、次の3つのステップを実行する必要があります。
# AUTOMATIC MODULE ARGUMENTSコメントを検索しましたが、これは--markerコマンドラインパラメーターで変更できます。たとえば、モジュールの主な関数の最初の数行は、発電機が実行される前にこのように見えると仮定しましょう。
def main():
#自動モジュール引数
#自動モジュール引数
モジュール= ansiblemodule(
Pritingのスイッチをオンにしてチェックモードでジェネレーターを今すぐ実行すると、次のようなものが取り戻されます。
$ ansible-argspec-gen - diff - dry-runプラグイン/モジュール/route.py
--- ../ansible_collections/steampunk/nginx_unit/plugins/modules/route.py.old
+++ ../ansible_collections/steampunk/nginx_unit/plugins/modules/route.py.new
@@ -359,6 +359,52 @@
def main():
#自動モジュール引数
+ argument_spec = {
+「グローバル」:{"default":false、 "type": "bool"}、
+ "name":{"type": "str"}、
+ "socket":{"type": "path"}、
+ "state":{
+「選択」:[「現在」、「不在」]、
+「デフォルト」:「現在」、
+「タイプ」:「str」、
+}、
+}
+ require_if = [( "global"、false、( "name"、))、( "state"、 "present"、( "Steps"、)]]]
#自動モジュール引数
モジュール= ansiblemodule(
提案された変更から幸せになったら、ファイルに書き込むことができます。
$ ansible-argspec-genプラグイン/モジュール/routh.py
モジュールのドキュメントを更新すると、以前のコマンドを再実行するだけで、ジェネレーターが仕様を取得または更新することができます。ジェネレーターはマーカー間のコンテンツを上書きするため、ファイルの一部を手動で変更しないでください。そうしないと、次のアップデートで変更が緩和されることを確認してください。
AnsibleModuleクラスの引数仕様の生成は、ドキュメントがあるモジュールで動作する必要があります。ただし、条件付き要件などの他のパラメーターを発電機に取得するには、少し作業が必要です。
required_if仕様を生成するには、パラメーターが説明に、i({param_name})がc({param_value})である場合に必要なテンプレートに適合する文を持つ必要があります。次の例:
オプション:
名前:
説明:
- リソースの名前。 I(STATE)がC(現在)の場合は必須です。
次の仕様が生成されます。
必須_if = [( "state"、 "present"、( "name"、)]]]
ジェネレーターが生成する方法を知っているもう1つのことは、 mutually_exclusive仕様です。この場合、ジェネレーターが探しているパターンは、I({param1})、i({param2})、およびi({param3})で相互に排他的です。ここで、指定できるパラメーターの数は制限されません。例:
オプション:
プロセス:
説明:
- 動的プロセス制限。
-I(no_processes)と相互に排他的。
no_processes:
説明:
- 静的プロセス制限。
- I(プロセス)と相互に排他的。
これは生成されます:
reculally_exclusive = [( "no_processes"、 "processes")]
pipenvをインストールしている場合、開発環境を稼働させることは比較的簡単です。
$ pipenvアップデート
抽出器をテストするには、実行できます。
$ pipenv run ansible-argspec-gen