我想运行此剧本的Ansible临时命令
---
- hosts: localhost
tasks:
- name: Print message if ansible version is greater than 2.7.0
debug:
msg: "Ansible version is {{ ansible_version.full }}"
when: ansible_version.full >= "2.7.4"
我有此命令,如何包含条件“何时”?
ansible localhost -m debug -a msg="{{ ansible_version.full }}"
答案 0 :(得分:1)
我有此命令,如何包含条件“何时”?
when:
是jinja2 if
语句的语法糖,因此您可以使用:
ansible localhost -m {% if ansible_version.full >= '2.7.4' %}debug{% endif %} -a msg="{{ ansible_version.full }}"
关于如何完全跳过任务,您必须找到可以放在其中的模块,该模块不会导致什么发生,例如{ {1}}与pause
等,或编写自己的seconds=0
模块
此外,虽然我只是逐字复制了您的noop:
语句,但我相信正确条件是使用version
comparison test:
when:
因为您撰写的内容将按字母顺序进行比较,而不使用版本语义,因此ansible localhost -m debug -a msg="{% if (ansible_version.full is version('2.7.4', '>=')) %}{{ ansible_version.full }}{% endif %}"
2.10.4
自{{1} }在排序列表中的出现早于>=