2017-01-18 5 views
3

Я пытался использовать опускаем с выражением, как это:Как использовать пропустить с помощью Ansible и избежать ошибок?

id: "{{ openstack_networks.id | default(omit) }}" 

Но, кажется, что он держит неудачу с исключением, когда openstack_networks переменная не определена.

Каков правильный способ написать этот фильтр jinja2?

Я хочу опустить параметр в случае, если openstack_networks.id не существует.

ответ

4

Не супер элегантное, но 100% рабочий раствор для обработки ключей возможно неопределенной родительской dicts:

id: "{{ (openstack_networks | default({})).id | default(omit) }}" 

Это даст вам omit если openstack_networks определенно, но не имеет id ключа или если openstack_networks не определен.

+1

Спасибо. Теперь у меня болит голова! В Ansible нет красоты :( – sorin