gpt4 book ai didi

variables - 如何在 Ansible 的 var 文件中引用列表中的变量?

转载 作者:行者123 更新时间:2023-12-03 19:32:07 25 4
gpt4 key购买 nike

我有一个变量文件,其中包含如下格式的列表:

VAR:
- a: 1
b: 2
c: 3
- a: 4
b: 5
c: 6

在这里,我想在列表中添加另一个引用子变量的变量,例如:
VAR:
- a: 1
b: 2
c: 3
d: "{{ VAR.0.a }}"
- a: 4
b: 5
c: 6
d: "{{ VAR.1.a }}"

但他们没有工作。

我试过 {{ VAR[0].a }} {{ VAR[a] }} {{ VAR.0.a }} 等等,
但他们都没有工作。

您如何引用列表中的子元素?

最佳答案

我认为正确的方法是{{ VAR[0]["a"] }} .但是你想做的事情很有可能行不通。

原因是“ mustache 不堆叠”。如果您在代码'VAR.d' 中的某处使用,它将扩展为字符串'VAR[0]["a"]'(不是表达式,而是文字字符串)。 Ansible 使用惰性模板化,将模板扩展延迟到最后一刻。它可以被 set_fact 部分覆盖模块,但我怀疑它在这种情况下会有所帮助。

我的建议是避免此类引用。

但这里有一个 YAML 技巧来拯救。它与 Ansible 无关,但它在 Ansible 中工作。

YAML 允许使用对旧值的引用。

VAR:
- a: &refname 1
b: 2
c: 3
d: *refname
- a: &ref2 4
b: 5
c: 6
d: *ref2

关于variables - 如何在 Ansible 的 var 文件中引用列表中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53342621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com