![](/img/trans.png)
[英]'dict object' has no attribute 'stdout' in Ansible Playbook
[英]Create and access dict in Ansible playbook
我正在嘗試根據現有變量的值在Ansible劇本中設置一個變量,該變量可能是許多不同的字符串之一。 這基本上是一個case / switch語句,這是邏輯(語法不正確):
if {{ existing_ansible_var }} == "string1"
new_ansible_var = "a"
else if {{ existing_ansible_var }} == "string2"
new_ansible_var = "b"
<...>
else
new_ansible_var = ""
我可以在Jinja中使用類似字典的漂亮技巧:
{% set new_ansible_var = {"string1": "a", "string2": "b"}[existing_ansible_var] | default("") -%}
我可以使用類似的字典構造在劇本中設置變量( set_fact
)嗎?
如另一個問題/答案中所述 ,您可以這樣做:
vars:
myDict: {"string1": "a", "string2": "b"}
new_ansible_var: '{{myDict[existing_ansible_var | default("this key does not exist in the dict")] | default("") }}'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.