it-swarm.com.ru

Использование True False с предложением Ansible When

Я сталкиваюсь с самой глупой проблемой. Я не могу понять, как проверить логическое значение в файле задачи Ansible 2.2.

В vars/main.yml, Я имею:

destroy: false

В сборнике пьес у меня есть:

roles: 
  - {'role': 'vmdeploy','destroy': true}

В файле задачи у меня есть следующее:

- include: "create.yml"
  when: "{{ destroy|bool }} == 'false'"

Я пробовал различные комбинации ниже:

when: "{{ destroy|bool }} == false"
when: "{{ destroy|bool }} == 'false'"
when: "{{ destroy|bool  == false}}"
when: "{{ destroy  == false}}"
when: "{{ destroy  == 'false'}}"
when: destroy|bool  == false
when: destroy|bool  == 'false'
when: not destroy|bool

Во всех вышеперечисленных случаях я все же получаю:

statically included: .../vmdeploy/tasks/create.yml

Отладочный вывод:

- debug:
    msg: "{{ destroy }}"

---

ok: [atlcicd009] => {
"msg": true
}

Желаемый результат - пропустить включение.

22
Simply Seth

Чтобы запустить задачу, когда destroy равно true:

---
- hosts: localhost
  connection: local
  vars:
    destroy: true
  tasks:
    - debug:
      when: destroy

и когда destroy равно false:

---
- hosts: localhost
  connection: local
  vars:
    destroy: false
  tasks:
    - debug:
      when: not destroy
36
techraf

Нет необходимости использовать boolфильтр Jinja , когда значение переменной определено в hostvars.

Для приведения значений к определенным типам, например, когда вы вводите строку как "True" из vars_Prompt, и система не знает, что это логическое значение.

Так просто

when: not destroy

должен сделать свое дело.

13
Henrik Pingel