ansible argspec gen
1.0.0
該軟件包包含用於Ansible參數規範程序的代碼。它的主要受眾是Ansible Ansible維護者,希望通過直接從模塊的用戶文檔生成參數規範來減少模塊中的重複。
文檔提取器在PYPI上發表,我們可以使用pip安裝它:
$ pip安裝ansible-argspec-gen [base]#這將安裝Ansible base
$ pip安裝Ansible-argspec-gen [Ansible]#這將安裝Ansible
$ pip安裝ansible-argspec-gen#我們需要安裝Ansible或
#我們自己
如果以前的命令沒有失敗,我們準備開始更新模塊。當我們第一次使用發電機時,我們需要執行以下三個步驟:
# AUTOMATIC MODULE ARGUMENTS註釋,但是可以使用--marker命令行參數更改。例如,讓我們假設模塊主要功能的前幾行在生成器運行之前看起來像這樣:
def main():
#自動模塊參數
#自動模塊參數
模塊= ansiblemodule(
如果我們現在以差異打開的差異打開的檢查模式運行發電機,我們將獲得這樣的東西:
$ ansible-argspec-gen-Diff - Diff-Dry-Run插件/模塊/ROUTE.PY.PY
--- ../ ansible_collections/steampunk/nginx_unit/plugins/modules/route.py.old.old
+++ ../ ansible_collections/steampunk/nginx_unit/plugins/modules/route.py.new
@@ -359,6 +359,52 @@
def main():
#自動模塊參數
+參數_spec = {
+“ global”:{“默認”:false,“ type”:“ bool”},
+“ name”:{“ type”:“ str”},
+“套接字”:{“ type”:“ path”},
+“狀態”:{
+“選擇”:[“現在”,“不存在”],
+“默認”:“現在”,
+“ type”:“ str”,
+},
+}
+ quilter_if = [(“ global”,false,(“ name”,)),(“狀態”,“現在”,(“ step”,)]]
#自動模塊參數
模塊= ansiblemodule(
一旦我們感到高興,我們可以將它們寫入文件:
$ ansible-argspec-gen插件/模塊/route.py
如果我們更新模塊的文檔,則可以簡單地重新運行上一個命令,而生成器將採用或更新規範。請注意,生成器將覆蓋標記之間的內容,因此請確保您不要手動修改文件的部分,否則您會在下一個更新上放失更改。
生成AnsibleModule類的參數規範應在具有文檔的任何模塊上使用。但是讓生成器生成其他參數,例如條件要求需要一些工作。
為了生成required_if指定,我們的參數需要在其描述中具有一個句子,該句子適合如果i({param_name})為c({param_value}),則需要適合模板。下一個示例:
選項:
姓名:
描述:
- 資源的名稱。如果我(狀態)為C(目前),則需要。
將產生以下規範:
quelign_if = [(“狀態”,“現在”,(“ name”,)]]
生成器知道如何生產的另一件事是mutually_exclusive規範。在這種情況下,生成器正在尋找的模式與i({param1}),i({param2})和i({param3})相互排除,其中我們可以指定的參數數不限。例子:
選項:
過程:
描述:
- 動態過程限制。
- 與i(no_processes)相互排斥。
no_processes:
描述:
- 靜態過程限制。
- 與I(過程)相互排斥。
這將產生:
mutally_exclusive = [(“ no_processes”,“ processes”)]
如果我們安裝了pipenv ,則啟動和運行開發環境相對簡單:
$ PIPENV更新
要測試提取器,我們可以運行:
$ PIPENV運行Ansible-Argspec-Gen