如何使用条件在Ansible中设置变量值?

use*_*546 8 ansible

我有两个变量:a,b.

我想c根据以下内容为变量赋值:ab包含更大的数值.

这就是我试过的:

- set_fact:
    c: "test1"
  when: a <= b

- set_fact:
    c: "test2"
  when: b <= a
Run Code Online (Sandbox Code Playgroud)

像它总是将ctest1没有test2.

tec*_*raf 13


上述方法中的任何一种都要求两个用于比较的变量具有相同的类型以给出合理的结果.对于数值比较,它们要求两个值都是整数.

问题的代码:

- set_fact:
    c: "test1"
  when: a <= b

- set_fact:
    c: "test2"
  when: b <= a
Run Code Online (Sandbox Code Playgroud)

在两种情况下正常工作:

  • 既:ab是整数
  • both:ab包含具有相同位数的数值的字符串

然而它产生意想不到的结果是:

  • 其中一个值是字符串,另一个是整数
  • 字符串值包含具有不同位数的数字值