Я хочу условно определить переменную в Ansible playbook следующим образом:
my_var: "{{ 'foo' if my_condition}}"
Я хотел бы, чтобы переменная оставалась неопределенной, если условие не переходит в true
.
Ansible выдает следующую ошибку, если я пытаюсь выполнить код:
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}
Почему это ошибка в любом случае?
Полный случай выглядит так:
{role: foo, my_var: "foo"}
Если my_var
определен, роль делает что-то особенное. В некоторых случаях я не хочу, чтобы роль делала это. Я мог бы использовать when: condition
, но тогда мне пришлось бы скопировать весь ролевой блок. Я также мог бы использовать дополнительную переменную bool, но я хотел бы найти решение, не меняя "интерфейс" на роль.
Есть идеи?