2017-02-13 2 views
1

Haben Sie eine Konfigurationsdatei haben wie die Suche:ansible unerwartete eval von Variablen bei der Verwendung von abgeflachten

one: 
    some: 'conf' 

foo: 
    - 
    bar: 
     - 'one' 
     - 'two' 
     - 'three' 
    - 
    bar: 
     - 'one' 
     - 'four' 
     - 'five' 

Ich möchte alle Saiten bar Listen eine Liste erhalten enthält. Ich habe diese Aufgabe:

- name: My amazing task 
    debug: var=item 
    with_flattened: 
    - "{{ foo | map(attribute='bar') | list }}" 
    #- Another lists here, but removed for simplicity 

Hier ist das Problem; die resultierende Liste sieht wie folgt aus:

[{"one": "some": "conf"}, "two", "three", {"one": "some": "conf"}, "four", "five"] 

ansible scheint die „Eins“ Variable vorher gesetzt zu interpretieren, die Tatsache zu ignorieren ich einen String bin erwartet.

Was habe ich falsch gemacht? Wie kann ich eine Liste von Strings aus der Konfiguration der Balkenvariablen erhalten?

(ich benutze ansible 1.9)

Antwort

2

Um dies zu verhindern sehr Ausgabe von nackten Variablen in with_ Schleifen funktioniert nicht in der letzten ansible Releases.

Um es in Ihrem Fall zu behandeln, verwenden:

with_items: "{{ foo | map(attribute='bar') | sum(start=[]) | list }}" 

sum(start=[]) macht eine Liste der Listen hier flach.

Verwandte Themen