ansible - 如何使用变量的值来查找名称为所述值的另一个变量
问题描述
我正在尝试使用一个变量的值作为 Jinja2 中另一个变量的名称的参考,但运气不佳。
这是针对 Ansible 的工作,但我目前遇到问题的是 Jinja2 部分本身。我不确定这是否可能,但我觉得应该是这样,我只是遗漏了一些明显的东西。
例如,使用以下 yaml:
item:
key: second_var
value: foobar
second_var:
dict1:
key1: value1
key2: value2
dict2:
key1: v1
key2: v2
我正在尝试获取 second_var 的值,所以说:{{ second_var.dict2.key1 }}
将是v1
的内容item.key
包含second_var
。但是当我引用时,{{ item.key }}
我显然只是得到字符串'second_var'。
我希望能够以item.key
某种方式,以某种方式转换这个字符串,所以我可以(例如)使用{{ item.key }}.dict2.key1
我一直在使用这个有用的实时解析器:http: //jinja.quantprogramming.com/
我知道你不能嵌套 Jinja2 变量,所以{{ {{ item.key }}.dict2.key1 }}
已经出来了,但这应该可以很好地了解我想要实现的目标。我不知道现在该如何处理!
测试模板:
{{ item.key }}
{% set var_name = item.key -%}
{{ var_name }}
{% set dict = var_name -%}
"{{ dict }}.dict2.key1" = "{{ another_var.dict2.key1 }}"
item:
key: another_var
value: foobar
another_var:
dict1:
key1: value1
key2: value2
dict2:
key1: v1
key2: v2
解决方案
推荐阅读
- flutter - Getx Flutter中的重复全局键
- c# - 使用实体框架单击按钮后解决 Datagridview 重新加载?
- javascript - 使用 html 和 javascript 创建一个阅读更多按钮
- sql - 如何在 SQL Server 中根据百分比获取表数据?
- ios - 点击注销时 SwiftUI 将应用程序重置为登录屏幕
- arrays - 使用 powershell 将 Azure DevOps 变量设置为 int 而不是 string
- android - 在模块 jetified-com.google.zxing.client.android.captureactivity.jar 和 jetified-core-3.3.3.jar 中发现重复的类 com.google.zxing.Binarizer
- javascript - 我在反应中使用 for of 循环,但这给了我一个错误“x 未定义”。我可以使用简单的 for 循环,但使用 for of 循环会更干净
- php - 我想更改 Woocommerce 中的特定字符串
- javascript - ReactJS - 使用 setInterval 减少计时器