Ansible模块如何返回事实

Ansible模块如何返回事实,ansible,ansible-playbook,ansible-facts,Ansible,Ansible Playbook,Ansible Facts,我写了一个简单的模块,这个模块需要设置一些事实 我在模块中定义了以下代码 .... response = { "hello": "world", "ansible_facts" : { "my_data": "xjfdks" } } module.exit_json(changed=False, meta=response) 现在,在执行完我的_模块后的playbook中,我想要访问新的事实,但它没有定义 - my_module - debug: ms

我写了一个简单的模块,这个模块需要设置一些事实

我在模块中定义了以下代码

.... 
response = {
    "hello": "world",
    "ansible_facts" : {
        "my_data": "xjfdks"
    }
}
module.exit_json(changed=False, meta=response)
现在,在执行完我的_模块后的playbook中,我想要访问新的事实,但它没有定义

- my_module
- debug: msg="My new fact {{ my_data }}"

正确的方法是什么?

您应该直接在模块的输出中设置
ansible\u facts
,而不是在
meta
中设置

要从示例中返回所有
响应
的键,请执行以下操作:

module.exit\u json(changed=False,**响应)

或仅针对可解释的事实:


module.exit_json(changed=False,ansible\u facts=response['ansible\u facts'])

不熟悉
ansible
,但是考虑到
response
对象结构,它不应该是符合
{{ansible\u facts.my\u data}}
精神的吗?不,这个错误是致命的:[localhost]:失败!=>{“failed”:true,“msg”:“'ansible_facts'未定义”}