在Ansible playbook中创建和访问dict

在Ansible playbook中创建和访问dict,ansible,ansible-playbook,Ansible,Ansible Playbook,我试图在Ansible playbook中根据现有变量的值设置一个变量,该变量可以是许多不同字符串中的一个。它基本上是一个case/switch语句,这是逻辑(语法不正确): 我可以使用类似的字典构造在剧本中设置变量(set\u fact)吗?如另一个中所述,您可以这样做: vars: myDict: {"string1": "a", "string2": "b"} new_ansible_var: '{{myDict[existing_ansible_var | default(

我试图在Ansible playbook中根据现有变量的值设置一个变量,该变量可以是许多不同字符串中的一个。它基本上是一个case/switch语句,这是逻辑(语法不正确):

我可以使用类似的字典构造在剧本中设置变量(
set\u fact
)吗?

如另一个中所述,您可以这样做:

vars: 
   myDict: {"string1": "a", "string2": "b"}
   new_ansible_var: '{{myDict[existing_ansible_var | default("this key does not exist in the dict")] | default("") }}'

四天前,你已经问了几乎相同的问题,并且得到了很多回答。
{% set new_ansible_var = {"string1": "a", "string2": "b"}[existing_ansible_var] | default("") -%}
vars: 
   myDict: {"string1": "a", "string2": "b"}
   new_ansible_var: '{{myDict[existing_ansible_var | default("this key does not exist in the dict")] | default("") }}'