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