我正在尝试检查提供的版本是否是有效的受支持版本.我已经在变量中设置了可接受版本的列表,如果提供的版本不在列表中,我想要失败.但是,我不确定如何做到这一点.
#/role/vars/main.yml
---
acceptable_versions: [2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
和
#/role/tasks/main.yml
---
- fail:
msg: "unsupported version"
with_items: "{{acceptable_versions}}"
when: "{{item}} != {{version}}"
- name: continue with rest of tasks...
Run Code Online (Sandbox Code Playgroud)
以上是我想要做的事情,但是我无法弄清楚是否有一种单行方式来构建对故障模块的"list contains"调用.
Pro*_*e85 69
{{}}在条件允许的情况下你不需要.你在寻找的是:
- fail: msg="unsupported version"
when: version not in acceptable_versions
Run Code Online (Sandbox Code Playgroud)
Ansible version_compare自1.6以来就有一个过滤器.您可以在when条件下执行以下操作:
when: ansible_distribution_version | version_compare('12.04', '>=')
这将为您提供主要和次要版本比较的支持,您可以使用以下运算符比较版本:
<, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne
您可以在此处找到有关此内容的更多信息:Ansible - 版本比较过滤器
否则,如果您的案例非常简单,可以使用@ProfH85建议的内容
| 归档时间: |
|
| 查看次数: |
70046 次 |
| 最近记录: |