Ansible When statement (IF else)



我刚刚开始学习ansible。我想知道我如何做一个IF ELSE语句在可见。我知道在If语句中使用when是可行的。因此,这里是一堆代码,我试图使用时。这里的目的是检查priv的值是否为"privilege"。这段代码是工作的,但我认为有什么错误的时候声明。输出总是返回false,即使假设有一个真实的结果。有人知道哪里出错了吗?谢谢。:)

代码看起来像。更容易阅读

  • name: User | Username set_fact:User_username: "{{项。Split (' ')1}}"可缓存:yes with_items: "{{output12}}">

  • name: check priv set_fact:
    priv: "{{item。Split (' ')[2]}}"with_items:"{{output12}},注册:priv

  • name: check set_fact:is_privilege:假何时:priv != "privilege"with_items:"{{output12}}">

  • name: check 2 set_fact:is_privilege:真何时:priv == "privilege"with_items:"{{output12}}">

这个问题失去了格式,有点难以阅读;你能编辑它并修复格式吗?


一种方法是在Jinja中使用过滤器的组合,然后检查结果是否至少有一个项目,像这样:

- name: check privilege
set_fact:
is_privilege: >-
{{
output3.stdout[0].split('n')
| select('eq', priv)
| list | length > 0
}}

BTW,当用调试显示变量时,最好使用var而不是msg;这将更好地格式化值,例如让您查看是否有多余的空格:

- debug: 
var: priv

您可以使用相同的形式来调试Jinja表达式;这将把结果整齐地格式化为数据结构,因此您可以快速试验过滤器:

- debug: 
var: >-
output3.stdout[0].split('n')
| select('eq', priv)
| list | length > 0

相关内容

  • 没有找到相关文章

最新更新