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