Chcę warunkowo zdefiniować zmienną w poradniku Ansible w następujący sposób: my_var: "{{ 'foo' if my_condition}}"
. Chciałbym, aby zmienna pozostała niezdefiniowana, jeśli warunek nie zostanie ustawiony na true.Definicja warunkowo zmiennej w Ansible
W przypadku próby uzyskania odpowiedzi na pytanie: " fatal: [foo.local] => {'msg': 'AnsibleUndefinedVariable: One or more undefined variables: the inline if-expression on line 1 evaluated to false and no else section was defined.', 'failed': True}
. Dlaczego mimo to jest to błąd?
Kompletny futerał wygląda następująco: {role: foo, my_var: "foo"}
. Jeśli zdefiniowano my_var
, rola robi coś specjalnego. W niektórych przypadkach nie chcę tego robić. Mógłbym użyć when: condition
, ale wtedy musiałbym skopiować cały blok ról. Mogę również użyć dodatkowej zmiennej bool, ale chciałbym rozwiązania bez konieczności zmiany "interfejsu" do roli.
Wszelkie pomysły?
Zalecam użycie modułu stat do sprawdzenia pliku zamiast użycia polecenia powłoki. –