gpt4 book ai didi

amazon-web-services - 来自复杂结构的 Ansible 查找值?

转载 作者:行者123 更新时间:2023-12-04 08:12:17 25 4
gpt4 key购买 nike

我正在编写 Ansible 剧本,我在其中使用 ec2_vpc_subnet_facts 在 VPC 中注册有关子网的事实,例如:

- ec2_vpc_subnet_facts:
region: "{{ ec2_region }}"
filters:
vpc-id: "{{ vpc.vpc.id }}"
register: vpc_subnet_facts

因此返回一个结构,如(删除不相关的属性):

"vpc_subnet_facts": {
"changed": false,
"subnets": [
{
...
"id": "subnet-0bb50753",
...
"tags": {
"Name": "mytag1"
},
...
},
{
...
"id": "subnet-0bb50754",
...
"tags": {
"Name": "mytag2"
},
...
}
]
}

稍后在剧本中,当创建 EC2 实例时,想法是根据 ec2modules vpc_subnet_id 属性的标记值查找子网 ID,即具有 mytag1 查找关联的子网 ID subnet-0bb50753

我目前的方法是使用 ec2_vpc_subnet_facts 结果中的 set_facts 创建一个 tag => subnet-ID 字典,但我感兴趣的是替代方案。

问候,奥拉

最佳答案

selectattr神社过滤器是你的 friend :

- debug: msg="{{ (vpc_subnet_facts.subnets | selectattr('tags.Name','equalto','mytag1') | first).id }}"

这里做了什么:从 vpc_subnet_facts.subnets 中提取元素子集,其中 tags.Name=='mytag1',取第一个元素,取 id 字段。

关于amazon-web-services - 来自复杂结构的 Ansible 查找值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39685255/

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