Deployment 如何将ansible字符串转换为float,并使用该值与float值进行比较

Deployment 如何将ansible字符串转换为float,并使用该值与float值进行比较,deployment,ansible,Deployment,Ansible,我想将Ansiblestring值转换为float并与另一个float值进行比较 在我的ini文件bin_version=6.5.17中,我想将bin_version与1个十进制值(6.5>=6.7)进行比较,所以我将其拆分为1个十进制值bin_version.split('.)[:2]并将其与float连接 “{{bin_version.split('.')[:2]| join('.')|float}}” 但是当条件当:version>=6.7时,它不能像预期的那样工作,它的浮点转换(| fl

我想将
Ansible
string
值转换为
float
并与另一个
float
值进行比较

在我的
ini
文件
bin_version=6.5.17
中,我想将
bin_version
与1个十进制值(6.5>=6.7)进行比较,所以我将其拆分为1个十进制值
bin_version.split('.)[:2]
并将其与float连接
“{{bin_version.split('.')[:2]| join('.')|float}}”

但是当条件当:version>=6.7时,它不能像预期的那样工作,它的浮点转换(
| float
)真的在这里工作吗

tasks:
  - set_fact:
      version: "{{bin_version.split('.')[:2] | join('.')|float}}"

  - debug:
      msg: "{{version}}"
    when: version >= 6.7
只有当
版本>=6.7

但是

案例:1:通过

  when: version >= 6.7 // 6.5 >= 6.7

预期结果是任务应该被跳过,但它正在执行。

您必须进行如下比较

when: bin_version is version('6.7', '>=')

太棒了,你觉得上面的脚本有什么改进吗?我想你不需要转换成float。是的,你是对的,float类型转换是不需要的。塔克斯