gpt4 book ai didi

ansible - 如何在ansible list 文件中定义散列(dict)?

转载 作者:行者123 更新时间:2023-12-02 04:31:04 24 4
gpt4 key购买 nike

我可以在 group_vars/all 中定义如下的哈希(字典):

region_subnet_matrix:
site1:
region: "{{ aws_region }}"
subnet: "subnet-xxxxxxx"
zone: "{{aws_region}}a"
site2:
region: "{{ aws_region }}"
subnet: "subnet-xxxxxxx"
zone: "{{aws_region}}b"

但对于我的生活,我无法弄清楚如何在主机文件下定义它

[all:vars]
region_subnet_matrix="{
site1:
region: "{{ aws_region }}"
subnet: "subnet-xxxxxxx"
zone: "{{aws_region}}a"
site2:
region: "{{ aws_region }}"
subnet: "subnet-xxxxxxx"
zone: "{{aws_region}}b"
}"

我知道这是不正确的,但我不知道正确的方法。请问有人可以启发我吗?

最佳答案

当我阅读 Ansible 的源代码时, list 文件中的变量值是通过 Python 的“ast.literal_eval()”计算的。因此,您可以通过一行 Python 文字来描述 list 文件中的 dict 变量。

您的示例可能如下所示:

[all:vars]
region_subnet_matrix={'site1': {'subnet': 'subnet-xxxxxxx', 'region': '{{ aws_region }}', 'zone': '{{aws_region}}a'}, 'site2': {'subnet': 'subnet-xxxxxxx', 'region': '{{ aws_region }}', 'zone': '{{aws_region}}b'}}

确保此示例中没有评估任何变量。

注意:我不知道这种库存变量定义是否被官方允许。

关于ansible - 如何在ansible list 文件中定义散列(dict)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29856738/

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