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- 此类型对应于 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')"
返回值
| 键 | 描述 | 
|---|---|
| 根据比较结果返回  返回: 成功 | 
