2016-11-24 4 views
0

Я пишу Ansible module my_module, который должен установить некоторые факты.Каким образом Ansible модуль возвращает факт

Я определяю в модуле ниже код

.... 
response = { 
    "hello": "world", 
    "ansible_facts" : { 
     "my_data": "xjfdks" 
    } 
} 
module.exit_json(changed=False, meta=response) 

Теперь в PlayBook после выполнения my_module я хочу доступ к новым фактам, но это не определяет

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

Что такое правильный способ сделать это ?

+0

Не знакомы с' ansible', но учитывая 'response' объект структура не должна быть чем-то в духе '{{ansible_facts.my_data}}'? – GillesC

+0

нет, я получаю эту ошибку фатальной: [localhost]: FAILED! => {"failed": true, "msg": "ansible_facts" не определено "} – Shurik

ответ

0

Вы должны установить ansible_facts непосредственно на выходе модуля, а не внутри meta.

Чтобы вернуть все «ключи response ые из вашего примера:

module.exit_json(changed=False, **response)

Или только для ansible_facts:

module.exit_json(changed=False, ansible_facts=response['ansible_facts'])