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类型转换是不需要的。塔克斯