2016-12-23 2 views
1

Ich kämpfe um die richtige Syntax, um herauszufinden, mit variabler ize diesen Code-Snippet:Variable Wörterbuch Schlüssel nicht ersetzt

vm_cidr: '10.10.0.0/24' 
vm_network: FOO 
vm_gateway: '10.10.0.1' 
networks: 
    "{{ vm_cidr }}": 
     network: "{{ vm_network }}" 
     gateway: "{{ vm_gateway }}" 

Die Substitution für vm_cidr nie auftritt. Ich habe this Post gelesen, aber ich kämpfe immer noch. Irgendwelche Ideen wie man das richtig verändert?

Antwort

0

Hier yo gehen:

networks: '{{ {vm_cidr:{"network":vm_network,"gateway":vm_gateway} } }}' 

Hinweis Raum am Ende des dict Doppel unnötige Doppelstreben zu verhindern.

+0

Scheint näher zu kommen: "fatal: [localhost -> localhost]: FAILED! => {" Geändert ": true," failed ": true," msg ":" Ein bestimmter Parameter war nicht korrekt: spec.nicSettingMap. adapter.gateway "}" –

+0

Hmm, das hängt nicht mit der Frage zusammen, die ich vermute. Sie können 'networks' mit debug drucken, es sollte Ihnen genau das geben, was Sie gefragt haben. –

+0

Nevermind, das hat perfekt funktioniert! Aus welchem ​​Grund auch immer, in meinem Basteln hatte ich doppelte und einfache Anführungszeichen um den Wert für vm_gateway. Vielen Dank!!! –

0

Man kann nicht einfach davon ausgehen, dass die skalare „vm_cidr“ (ohne Leerzeichen am Vorder-und Rückseite) innerhalb {{ und }} die gleichen wie „vm_cidr“ ist.

sollten Sie versuchen:

vm_cidr: '10.10.0.0/24' 
vm_network: FOO 
vm_gateway: '10.10.0.1' 
networks: 
    "{{vm_cidr}}": 
     network: "{{vm_network}}" 
     gateway: "{{vm_gateway}}" 
+0

Gleicher Fehler, wenn ich es so versuche: –

+0

Der Fehler war: netaddr.core.AddrFormatError: ungültiges IPNetwork "{{vm_cidr}}" –

+0

@Anthon Könnten Sie in ein bisschen mehr Details erklären? Ich habe immer gedacht, dass sie genau gleich sind. – techraf

Verwandte Themen