Ansible发现模块的额外输出是指在执行Ansible任务时,除了返回主要结果外,还可以返回一些额外的信息。这些额外输出可以用于后续任务的处理或者用于展示给用户。下面是如何实现额外输出的解决方法和代码示例:
以下是一个示例自定义模块(extra_output_module.py)的代码:
from ansible.module_utils.basic import AnsibleModule
def main():
module = AnsibleModule(
argument_spec=dict(
name=dict(type='str', required=True),
age=dict(type='int', required=True)
)
)
name = module.params['name']
age = module.params['age']
extra_output = {
'name': name,
'age': age,
'message': 'This is an extra message.'
}
result = {
'changed': False,
'extra_output': extra_output
}
module.exit_json(**result)
if __name__ == '__main__':
main()
register
关键字来捕获自定义模块的额外输出。通过使用register
关键字,可以将额外输出保存到一个变量中,以便后续使用。以下是一个示例Ansible Playbook的代码:
- name: Execute custom module with extra output
hosts: localhost
tasks:
- name: Run custom module
extra_output_module:
name: "John"
age: 30
register: extra_output_result
- name: Display extra output
debug:
var: extra_output_result.extra_output
在上述示例中,extra_output_result
变量将保存自定义模块的额外输出。通过debug
模块,可以将额外输出的内容打印出来。
通过上述方法,你可以实现Ansible发现模块的额外输出,并在后续任务中使用这些输出。