ansible.builtin.version 测试 – 版本字符串比较
注意
此测试插件是 ansible-core 的一部分,包含在所有 Ansible 安装中。在大多数情况下,您可以使用简短的插件名称 version。但是,我们建议您使用 完全限定集合名称 (FQCN) ansible.builtin.version,以便轻松链接到插件文档并避免与可能具有相同测试插件名称的其他集合冲突。
概要
- 使用各种版本控制方案比较版本字符串 
别名:version_compare
输入
这描述了测试的输入,即 is ansible.builtin.version 或 is not ansible.builtin.version 之前的 value。
| 参数 | 注释 | 
|---|---|
| 要比较的左侧版本 | 
关键字参数
这描述了测试的关键字参数。这些是在以下示例中的值 key1=value1、key2=value2 等:input is ansible.builtin.version(key1=value1, key2=value2, ...) 和 input is not ansible.builtin.version(key1=value1, key2=value2, ...)
| 参数 | 注释 | 
|---|---|
| 比较运算符 选项 
 | |
| 要比较的右侧版本 | |
备注
注意
- loose- 此类型对应于 Python- distutils.version.LooseVersion类。所有版本格式对此类型均有效。比较规则简单且可预测,但可能并不总是给出预期的结果。
- strict- 此类型对应于 Python- distutils.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')"
返回值
| 键 | 描述 | 
|---|---|
| 根据比较结果返回  返回:成功 | 
