2014-11-11 3 views
1

Предположим, у меня есть группа var с именем show_canada, которая является логической. У меня есть следующая задача:Пропустить элемент в цикле задач Ansible

- name: install conf file 
     template: src="example.conf.j2" dest="/etc/{{ item }}/example.conf" 
     sudo: yes 
     with_items: 
     - usa 
     - brazil 
     - canada 
     - japan 
     - turkey 

Как я могу иметь задачу пропустить пункт канады в зависимости от значения show_canada булева? Я думаю, у меня может быть поле when, которое проверяет, истинна ли позиция == 'canada' и show_canada? Должен быть лучший/лучший способ сделать это, любые предложения? И если у меня есть несколько задач, требующих такой же фильтрации, есть ли какой-то глобальный способ пропустить некоторые элементы?

ответ

3

В тех случаях, что я делаю, включая состояние со значением в Словаре:

- name: install conf file 
    template: src="example.conf.j2" dest="/etc/{{ item }}/example.conf" 
    sudo: yes 
    when: item.display is true 
    with_item: 
    - {name: usa, display: true} 
    - {name: brazil, display: true} 
    - {name: canada, display: false} 
    - {name: japan, display: true} 
    - {name: turkey, display: true} 

Вы даже вероятно, можно установить значение дисплея из вара

- {name: canada, display: {{show_canada}} } 
+0

спасибо за ваш ответ , помог мне решить мою проблему – Sascha

Смежные вопросы