【发布时间】:2023-01-11 23:59:32
【问题描述】:
是否可以从 Python 模块代码访问 Ansible 任务参数?
具体来说,我想检查任务中是否有 register,以便返回更完整的信息集。
【问题讨论】:
是否可以从 Python 模块代码访问 Ansible 任务参数?
具体来说,我想检查任务中是否有 register,以便返回更完整的信息集。
【问题讨论】:
是否可以从 Ansible 模块的 Python 代码访问任务参数?
是的当然。例如,您可以查看 Developing modules 和 Creating a module
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) )具体来说,我想检查任务上是否有寄存器
请注意Registering variables已完成
...来自带有任务关键字
register的 Ansible 任务的输出。这意味着任务,相应的在其中调用的模块不知道输出是否会被注册的事实,因为这是在执行模块代码并提供最终结果之后完成的。
...为了返回更完整的信息集。
因此,您需要提供另一种方法来控制结果集的数据结构。
例如
... supports_check_mode=True ... if module.check_mode: ...或者只是在您的自定义模块上引入一个单独的参数,例如
verbose: True或者
verbose_level: 1 # up to 4可以在模块中检查并简单地控制结果的冗长程度。
【讨论】: