Запуск задачи Ansible только тогда, когда переменная содержит определенную строку

У меня несколько задач зависят от значения переменной1. Я хочу проверить, находится ли значение в {{variable1}}, но я получил ошибку:

- name: do something when the value in variable1
  command: <command>
  when: "'value' in {{variable1}}"

Я использую ansible 2.0.2

Ответы

Ответ 1

Если variable1 - это строка, и вы ищете подстроку в ней, это должно работать:

when: '"value" in variable1'

if variable1 - это массив или dict вместо этого, in будет искать точную строку как один из ее элементов.

Ответ 2

Ни один из вышеперечисленных ответов не работал у меня в ansible 2.3.0.0, но следующее:

when: variable1 | search("value")

Ответ 3

Я использовал

failed_when: not(promtool_version.stdout.find('1.5.2') != -1)

означает - сбой, только если ранее зарегистрированная переменная "promtool_version" не содержит строку "1.5.2".