Bei ansible 1.9 ich einige Rollen, die ich Verwendung von nicht definierten Variablen (error_on_undefined_vars = False bei ansible.cfg) in Vorlagen ohne Probleme in der Art und Weise machen:ansible 2: kann nicht verwendet werden undef Vars in Vorlagen
Vorlage .yml:
{{ var1 }}{{ var2 }}{{ var3 }}
Wenn einer dieser Variablen nicht definiert ist, wird nichts ersetzt. Also können Sie einfach in Ihrem Spielbuch einige dieser Variablen und nicht andere wie gewünscht angeben.
Aber ich fand, nach dem Upgrade auf ansible 2.2.0.0, dass, wenn einige dieser Variablen nicht definiert sind, sie keine der Vars der Vorlage ersetzt werden und die resultierende Vorlage lautet: {{var1}} {{var2} } {{}} var3
ZB:
Textbuch:
- hosts: myhost
vars:
var1=1
var3=3
roles:
- myrole
Aufgaben:
- name: copy template
become: true
template: src=test.j2 dest=/tmp/test owner=user group=user
Nachdem dieses Textbuch ausgeführt wird, die resultierenden/tmp/Testlauf mit ansible 1.9 ist
13
und mit ansible 2.2.0.0 ist
{{ var1 }}{{ var2 }}{{ var3 }}
also keine Vars substituiert sind.
Aber wenn:
Textbuch:
- hosts: myhost
vars:
var1=1
var2=2
var3=3
roles:
- myrole
Nach diesem Textbuch ausgeführt wird, der resultierenden/tmp/Testlauf mit ansible 1.9/2.2.0.0 ist
123
Hat jemand dealed Mit diesem Verhalten vorher?
Ich glaube nicht, dass OP gefragt hat, wie man Ansible 2-Verhalten in Ansible 1.9 nachahmt, aber das Gegenteil. – techraf