все
в моем инвентаре я использую три переменные на разных уровнях:
all/vars:
common_configs:
- src: cfg.a
dest: dest_a
group_vars/vars:
group_configs:
- src: cfg.b
dest: dest_b
host_vars/vars:
host_configs:
- src: cfg.c
dest: dest_c
наконец мне нужно развернуть все cfg на целевой хост.Я использую следующий код:
- copy:
src: '{{ item.src }}'
dest: '{{ item.dest }}'
with_items:
- '{{ common_configs + group_configs + host_configs }}'
Все работает, но в моем случае обязательным является только common_configs, поэтому, когда group_configs или / и host_configs не определены - я получаю сообщение об ошибке.Я пытался использовать фильтр по умолчанию (опустить):
with_items:
- '{{ common_configs + group_configs + host_configs|default(omit) }}'
Но у меня есть другая ошибка:
FAILED! => {"msg": "Unexpected templating type error occurred on ({{ common_configs + group_configs + host_configs|default(omit) }}): can only concatenate list (not \"str\") to list"}
Каков истинный способ пропустить неопределенные переменные в таком случае?