gpt4 book ai didi

automation - Ansible 字典键作为变量

转载 作者:行者123 更新时间:2023-12-01 01:43:51 27 4
gpt4 key购买 nike

让我们在角色 defaults/main.yml 中有这样的东西:

num: 0
config:
0:
a: true
b: 'x'
1:
a: false
b: 'y'
2:
a: false
b: 'z'

现在我发送 -e num=1在剧本调用中,我想使用值 ab基于角色中其他地方的这个值,例如:
aValue: '{{config[num].a}}'
bValue: '{{config[num].b}}'

我怎么做?我试过
aValue: '{{config[num].a}}'但出现错误: 'dict object' has no attribute u'1' aValue: '{{config["num"].a}}'但出现错误: 'dict object' has no attribute 'num'

最佳答案

如果引用这些配置键,它们将成为字符串:

config:
"0":
a: true

或者,如果您的剧本的其余部分确实希望它们是数字,您可以制作 num实际上是一个数字有两种方式:
ansible -e '{"num": 1}'导致 ansible 解析 --extra-vars作为 JSON,其中 "num"真的会是 Number (在 JSON 意义上)

或强制 num在 jinja2 表达式中:
aValue: '{{ config[ (num|int) ].a }}'

关于automation - Ansible 字典键作为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53294414/

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