Ответ 1
В условиях не требуется {{}}
. Что вы ищете:
- fail: msg="unsupported version"
when: version not in acceptable_versions
Я пытаюсь проверить, является ли поставляемая версия допустимой поддерживаемой версией. Я установил список допустимых версий в переменной, и я хочу выйти из задачи, если поставляемая версия отсутствует в списке. Однако я не уверен, как это сделать.
#/role/vars/main.yml
---
acceptable_versions: [2, 3, 4]
и
#/role/tasks/main.yml
---
- fail:
msg: "unsupported version"
with_items: "{{acceptable_versions}}"
when: "{{item}} != {{version}}"
- name: continue with rest of tasks...
Выше это то, что я хочу сделать, но я не смог выяснить, существует ли один способ построения "списка содержит" вызов для модуля fail.
В условиях не требуется {{}}
. Что вы ищете:
- fail: msg="unsupported version"
when: version not in acceptable_versions
Ansible имеет фильтр version_compare
с 1.6.
Вы можете сделать что-то вроде ниже в when
условном:
when: ansible_distribution_version | version_compare('12.04', '>=')
Это даст вам поддержку для сравнения основных и второстепенных версий, и вы можете сравнивать версии с помощью таких операторов, как:
<, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne
Вы можете найти более подробную информацию об этом здесь: Ansible - фильтры сравнения версий
В противном случае, если у вас действительно простой случай, вы можете использовать то, что предложил @ProfHase85