2016-06-10 4 views
0

Ich wünsche, wie etwas zu tun:Zustand Einstellung des Playbook Vars in ansible

vars: 
    foo: 'bar' 
    bar: 'foo' 
    foo_bar: if '{{ foobar }}' == "bar" then "baz" else "zap 

Aber für das Leben von mir kann ich nicht die jinja Vorlage herauszufinden, dies zu tun. Ich möchte auch die Fähigkeit für den Benutzer foo_bar auf der Kommandozeile mit --extra-vars zuweisen.

Antwort

0

Die sauberste Lösung gefunden wurde, einen Wörterbuch mit einem Standard zu verwenden, etwa so:

vars: 
    foo: 'bar' 
    bar: 'foo' 
    foo_bar_dict: 
     bar: 'baz' 
    foo_bar: "{{ foo_bar_dict[foobar] | default('zap') }}" 

Nun, wenn foobar == 'baz' es das richtige Ergebnis bekommen, und wenn es uns Standard (sonst) nicht auf „zap ". Schließlich, wenn ich es in der Befehlszeile --extra-vars "foo_bar=zip" then that overrides every thing and foo_bar == zip überschreiben.