首页 > 解决方案 > 比较变量的ansible问题

问题描述

在剧本中,我想比较环境变量是否与剧本中定义的变量具有相同的值。我在比较中将以下代码与运算符 != 一起使用。

但是,当我将环境变量设置为与变量相同的值时,比较仍然会将它们视为不相等。

剧本看起来像这样:

---

 - name: preparations 
   hosts: all
   vars:
     TOKEN: 1234

   tasks:
    #
    - name: show tokens
      debug:
        msg : " {{TOKEN != lookup('env','TARGET_TOKEN')  }}  -{{TOKEN}}- -{{lookup('env','TARGET_TOKEN')}}-" 

我将值 1234 作为环境变量传递,然后得到以下输出

PLAY [preparations] ************************************************************

TASK [Gathering Facts] *********************************************************
ok: [xxx]

TASK [show tokens] *************************************************************
ok: [xxx] => {
    "msg": " True  -1234- -1234-"
}

输出表明变量具有相同的值。但正如我所料,比较返回 true 而不是 false。

我如何检测它们是否具有相同的值?

标签: variablesansible

解决方案


推荐阅读