AnsibleUndefinedVariable:找不到具有此名称的变量:region1a"}



我想在比较该地区是否为首都后得到信息的输出?帮我弄清楚如何使用";查找";正确地

{% if capital == lookup('vars', item) %} yes {% else %} no {% endif %}

{% if capital.action == {{ item }} %} yes {% else %} no {% endif %}

我得到以下错误

failed: [localhost] (item=region1a) => {"ansible_loop_var": "item", "changed": false, "item": "region1a", "msg": AnsibleError: template error while templating string: expected token ':', got '}'

这里{{item}}是一个变量=region1a

我有这些变量

vars:
AllCountry:
- name1
- name2
name1:
- region1a
- region1b 
name2:
- region2a
- region2b
capital:
- region1a
- region2a

我做错了什么?

在我看来,这就是您想要实现的目标:

{% if item in capital %} yes {% else %} no {% endif %}

但这并不是万无一失的。想象一下,在两个国家有两个同名的地区,一个是其中一个国家的首都,而另一个不是另一个的首都,你会在这里怎么做?

我真的会选择一种更捆绑的字典,比如:

countries:
country1:
regions:
- region1
- region2
- region3
capital: region1
country2:
regions:
- region4
- region5
capital: region5

但是,如果没有你的实际用例和你试图用这些构建的东西,很难就构建正确类型的数据结构提出建议。

相关内容

  • 没有找到相关文章

最新更新