2016-11-24 2 views
0

Ich schreibe Ansible-Modul my_module, die einige Fakten festlegen müssen.Wie funktioniert Ansible Modul fact

I in Modul definiere den Code unten

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

nun in Textbuch nach der Ausführung my_module ich den Zugang zu neuen Fakten will, aber es definiert nicht

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

Was ist der richtige Weg, es zu tun ?

+0

Nicht vertraut mit' ansible' aber das 'response' Objekt unter Berücksichtigung Struktur sollte es nicht etwas im Geiste von '{{ansible_facts.my_data}}' sein? – GillesC

+0

Nein, ich bekomme diesen Fehler fatal: [localhost]: FAILED! => {"fehlgeschlagen": true, "msg": "'ansible_facts' ist undefiniert"} – Shurik

Antwort

0

Sie sollten ansible_facts direkt in den Modulausgang setzen, nicht in meta.

Um alle response ‚s Schlüssel aus Ihrem Beispiel:

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

Oder nur für ansible_facts:

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