ansible.builtin.version 测试 – 比较版本字符串

注意

此测试插件是 ansible-core 的一部分,包含在所有 Ansible 安装中。在大多数情况下,您可以使用简短的插件名称 version。但是,我们建议您使用 完全限定集合名称 (FQCN) ansible.builtin.version 以便轻松链接到插件文档并避免与可能具有相同测试插件名称的其他集合发生冲突。

摘要

  • 使用各种版本控制方案比较版本字符串

别名:version_compare

输入

这描述了测试的输入,即 is ansible.builtin.versionis not ansible.builtin.version 之前的值。

参数

注释

输入

字符串 / 必需

要比较的左侧版本

关键字参数

这描述了测试的关键字参数。这些是在以下示例中 key1=value1key2=value2 等值:input is ansible.builtin.version(key1=value1, key2=value2, ...)input is not ansible.builtin.version(key1=value1, key2=value2, ...)

参数

注释

运算符

字符串

比较运算符

选项

  • "=="

  • "="

  • "eq" ← (默认)

  • "<"

  • "lt"

  • "<="

  • "le"

  • ">"

  • "gt"

  • ">="

  • "ge"

  • "!="

  • "<>"

  • "ne"

严格

布尔值

是否使用严格的版本方案。与 version_type 互斥

选项

  • false ← (默认)

  • true

版本

字符串 / 必需

要比较的右侧版本

version_type

字符串

用于比较的版本方案。与 strict 互斥。有关版本类型的说明,请参阅 notes

选项

  • "loose" ← (默认)

  • "strict"

  • "semver"

  • "semantic"

  • "pep440"

注释

注意

  • loose - 此类型对应于 Python distutils.version.LooseVersion 类。所有版本格式对此类型均有效。比较规则简单且可预测,但可能并不总是给出预期结果。

  • strict - 此类型对应于 Python distutils.version.StrictVersion 类。版本号由两个或三个点分隔的数字组件组成,末尾可选“预发布”标签。预发布标签由一个字母 ab 后跟一个数字组成。如果两个版本号的数字组件相等,则带预发布标签的版本始终被视为早于(小于)不带预发布标签的版本。

  • 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')"

返回值

描述

返回值

布尔值

根据比较结果返回 TrueFalse

返回:success

作者

  • Ansible Core

提示

每个条目类型的配置条目具有从低到高的优先级顺序。例如,列表中较低的变量将覆盖较高的变量。