如何从Python模块代码中的Ansible任务访问任务参数?



是否可以从Python模块代码访问Ansible任务参数?

具体来说,我想检查任务上是否有register,以便返回一个更完整的信息集。

是否可以从Ansible模块的Python代码访问任务参数?

当然可以。您可以了解开发模块和创建模块,例如

def run_module():
# define available arguments/parameters a user can pass to the module
module_args = dict(
name=dict(type='str', required=True),
new=dict(type='bool', required=False, default=False)
)

具体来说,我想检查任务

上是否有寄存器

请注意,注册返回值的变量是完成的

…从任务关键字为register的Ansible任务的输出中获取

这意味着任务,无论其中调用的模块,都不知道输出是否会被注册,因为这是在执行模块代码并提供最终结果之后完成的。

…为了返回更完整的信息集。

因此,您需要提供另一种方法来控制结果集的数据结构。

在示例

...
supports_check_mode=True
...
if module.check_mode:
...

或者只是在自定义模块中引入一个单独的参数,如

verbose: True

verbose_level: 1 # whereby 0 means false or OFF and i.e. up to 4

,可以在模块中检查,并简单地控制结果集的详细程度。

最新更新