Ansible无法将版本与is版本进行比较

Ansible无法将版本与is版本进行比较,ansible,Ansible,我使用Ansible 2.8.5。我可以使用ansible_facts.package,但很简单,让我们使用下面的剧本 - debug: msg: "{{ { 'version':'5.52.2' } is version('6.0.0','>=') }}" 返回 ..."msg" : True 如何正确比较点分隔版本 我阅读了官方文档,没有理解函数版本是如何工作的。有些人甚至说这会引起一个打字错误的例外。似乎没有人理解版本是如何工作的……为什么不先在变量中注册版本

我使用Ansible 2.8.5。我可以使用ansible_facts.package,但很简单,让我们使用下面的剧本

  - debug:
     msg: "{{ { 'version':'5.52.2' } is version('6.0.0','>=') }}"
返回

   ..."msg" : True
如何正确比较点分隔版本

我阅读了官方文档,没有理解函数版本是如何工作的。有些人甚至说这会引起一个打字错误的例外。似乎没有人理解版本是如何工作的……

为什么不先在变量中注册版本,然后添加一个检查。然后可以比较变量的内容。以下是一个例子-

failed_when: "'<version>{{ version }}</version>' not in this.content"
    - debug: msg=" version is {{ this.content.split('\n')[0].split('version')[1].split('>')[1].split('</')[0]}}"
试试这个。参考在字符串中提供版本

- hosts: localhost
  tasks:
    - set_fact:
            version1: "5.52.2"
            version2: "6.0.0"
    - debug:
            msg: "{{ version1  is version( version2  , '>=') }}"

您正在将dict与版本过滤器进行比较,这很可能不是您想要的-尽管我同样感到难过的是,它说的是真的,而不是类型错误。由于这个问题,我无法理解此文档中的任何内容。我个人不同意10.5.6是比9.5.6低的版本。