У меня есть эта команда, как я могу включить условное «когда»?
when:
- это синтетический сахар для оператора jinja2 if
, поэтому вы должны использовать:
ansible localhost -m {% if ansible_version.full >= '2.7.4' %}debug{% endif %} -a msg="{{ ansible_version.full }}"
Что касается того, как пропустить задачу целиком, вам нужно найти модуль, который вы могли бы вставить туда, который бы не вызывал ничего , например pause
с seconds=0
или другим, или напишите свой собственный noop:
модуль
Кроме того, хотя я только что дословно скопировал ваше when:
утверждение, я считаю, что правильное условие - использовать version
сравнительный тест :
ansible localhost -m debug -a msg="{% if (ansible_version.full is version('2.7.4', '>=')) %}{{ ansible_version.full }}{% endif %}"
потому что написанное вами будет сравниваться лексикографически и без использования семантики версий, поэтому 2.10.4
будет не считаться >=
2.7
, поскольку 2.1
появляется в отсортированном списке раньше, чем 2.7