ansible.builtin.version 测试 – 比较版本字符串
注意
此测试插件是 ansible-core
的一部分,包含在所有 Ansible 安装中。在大多数情况下,您可以使用简短的插件名称 version
。但是,我们建议您使用 完全限定集合名称 (FQCN) ansible.builtin.version
以便轻松链接到插件文档并避免与可能具有相同测试插件名称的其他集合发生冲突。
摘要
使用各种版本控制方案比较版本字符串
别名:version_compare
输入
这描述了测试的输入,即 is ansible.builtin.version
或 is not ansible.builtin.version
之前的值。
参数 |
注释 |
---|---|
要比较的左侧版本 |
关键字参数
这描述了测试的关键字参数。这些是在以下示例中 key1=value1
、key2=value2
等值:input is ansible.builtin.version(key1=value1, key2=value2, ...)
和 input is not ansible.builtin.version(key1=value1, key2=value2, ...)
参数 |
注释 |
---|---|
比较运算符 选项
|
|
要比较的右侧版本 |
|
注释
注意
loose
- 此类型对应于 Pythondistutils.version.LooseVersion
类。所有版本格式对此类型均有效。比较规则简单且可预测,但可能并不总是给出预期结果。strict
- 此类型对应于 Pythondistutils.version.StrictVersion
类。版本号由两个或三个点分隔的数字组件组成,末尾可选“预发布”标签。预发布标签由一个字母a
或b
后跟一个数字组成。如果两个版本号的数字组件相等,则带预发布标签的版本始终被视为早于(小于)不带预发布标签的版本。semver
/semantic
- 此类型实现了用于版本比较的 语义版本 方案。pep440
- 此类型实现了 Python PEP-440 版本规则以进行版本比较。在版本 2.14 中添加。
示例
- name: version test examples
assert:
that:
- "'1.0' is version_compare('1.0', '==')" # old name
- "'1.0' is version('1.0', '==')"
- "'1.0' is version('2.0', '!=')"
- "'1.0' is version('2.0', '<')"
- "'2.0' is version('1.0', '>')"
- "'1.0' is version('1.0', '<=')"
- "'1.0' is version('1.0', '>=')"
- "'1.0' is version_compare('1.0', '==', strict=true)" # old name
- "'1.0' is version('1.0', '==', strict=true)"
- "'1.0' is version('2.0', '!=', strict=true)"
- "'1.0' is version('2.0', '<', strict=true)"
- "'2.0' is version('1.0', '>', strict=true)"
- "'1.0' is version('1.0', '<=', strict=true)"
- "'1.0' is version('1.0', '>=', strict=true)"
- "'1.2.3' is version('2.0.0', 'lt', version_type='semver')"
- "'2.14.0rc1' is version('2.14.0', 'lt', version_type='pep440')"
返回值
键 |
描述 |
---|---|
根据比较结果返回 返回:success |