簡體   English   中英

在Ansible劇本中創建和訪問字典

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM