2016-04-25 7 views
0

Ich versuche Wörterbücher in ansible zu verwenden.Kann Wörterbücher nicht in ansible verwenden

Mein tasks/main.yml:

- name: Create Repository Folders 
    file: path=/srv/svn/{{ ansible_fqdn }}/{{ item.value.reponame }} state=directory mode=0755 owner=apache group=apache 
    with_dict: 
    - repos 

Und mein vars/main.yml:

--- 
repos: 
    repo1: 
    reponame: repository1 
    repogroup: group1 
    repo2: 
    reponame: repository2 
    repogroup: group2 
    repo3: 
    reponame: repository3 
    repogroup: group3 

Aber wenn ansible-Playbook läuft bekomme ich folgende Fehlermeldung:

TASK [svn : Create Repository Folders] ***************************************** 
fatal: [sun.beach.lan]: FAILED! => {"failed": true, "msg": "with_dict expects a dict"} 

folgte ich den Anweisungen auf „Looping über Hashes "hier: http://docs.ansible.com/ansible/playbooks_loops.html

Ich denke, ich habe nicht die richtige YAML-Syntax, aber mir sind die Ideen ausgegangen.

Antwort

2

Entfernen Sie einfach die - infront repos nach with_dict

- name: Create Repository Folders 
    file: path=/srv/svn/{{ ansible_fqdn }}/{{ item.value.reponame }} state=directory mode=0755 owner=apache group=apache 
    with_dict: 
    repos 

Wenn Sie ansible verwenden 2.0+ dann wie folgt verwenden:

with_dict: "{{ repos }}" 

Hope this Ihnen helfen.

+0

danke ... Können Sie erklären, warum ansible 2.0+ so funktioniert? – pwe

+0

Verwendung von Bare-Variablen ist in ansible 2.0+ veraltet –

Verwandte Themen