2016-03-18 4 views
1

zu integrieren Ich habe Probleme, einige zusammengesetzte Daten wie ein YAML-Mapping als Eingabe für das Ansible-Include-Modul zu übergeben.Ansible Passing-Hash, um Modul

Hier ist mein Test:

test.yml

--- 
- hosts: all 
    gather_facts: no 
    vars: 
    test_var: 
     test1: 
     hello: world 
     hi: people 
     test2: 
     hello2: world2 
     hi2: people2 
    tasks: 
    - debug: "msg='Variable item.value is: {{ item.value }}'" 
     with_dict: "{{ test_var.test1 }}" 
    - include: "test1.yml test_variable={{ item.value }}" 
     with_dict: "{{ test_var.test1 }}" 

test1.yml

--- 
- debug: "var={{ test_variable }}" 

Hier ist die Ausgabe. Beachten Sie den Teil mit: "people": "VARIABLE IS NOT DEFINED!"

$ ansible-playbook -i localhost, test.yml 

PLAY *************************************************************************** 

TASK [debug] ******************************************************************* 
ok: [localhost] => (item={'value': u'people', 'key': u'hi'}) => { 
    "item": { 
     "key": "hi", 
     "value": "people" 
    }, 
    "msg": "Variable item.value is: people" 
} 
ok: [localhost] => (item={'value': u'world', 'key': u'hello'}) => { 
    "item": { 
     "key": "hello", 
     "value": "world" 
    }, 
    "msg": "Variable item.value is: world" 
} 

TASK [include] ***************************************************************** 
included: /home/mot/jira-scripts/ansible-playbooks/test1.yml for localhost 
included: /home/mot/jira-scripts/ansible-playbooks/test1.yml for localhost 

TASK [debug] ******************************************************************* 
ok: [localhost] => { 
    "people": "VARIABLE IS NOT DEFINED!" 
} 

TASK [debug] ******************************************************************* 
ok: [localhost] => { 
    "world": "VARIABLE IS NOT DEFINED!" 
} 

PLAY RECAP ********************************************************************* 
localhost     : ok=5 changed=0 unreachable=0 failed=0 
+0

FYI Ich habe "FEHLER: []: include + with_items ist eine entfernte veraltete Feature. Bitte aktualisieren Sie Ihre Playbooks." mit ansible-playbook 1.9.3 –

+0

Ich benutze ansible 2.0.1. Diese Funktion wurde in ansible 2 zurückgeschrieben. In Version 1.6-1.9 war sie veraltet –

Antwort

2

einfach die test1.yml Datei ändern

--- - debug: var=test_variable

Es funktioniert für mich richtig.