我可以使用 Ansible playbook 获取 VPC 子网列表:
tasks:
- name: Gathering VPC info ...
amazon.aws.ec2_vpc_subnet_info:
region: "eu-east-1"
filters:
vpc-id: vpc-433434432aad778ad
register: output
- name: Register new var
ansible.builtin.set_fact:
cidr_list: "{{ cidr_list|default([]) + [item.cidr_block] }}"
loop: "{{ output.subnets }}"
- name: Debugger...
ansible.builtin.debug:
msg: "{{ cidr_list }}"
我现在想要的是通过给出每个子网的大小和初始 VPC CIDR 来计算所有 IPv4 地址(这实际上可以使用 AWS Fn::Cidr 成功完成):
"Fn::Cidr" : ["10.0.0.0/16", 15, 29 ]
这将创建一个包含 15 个子网的列表,其中每个子网的掩码均为/29。然后我的目标是比较两个列表,如果未使用从 Fn::Cidr 列表中找到的 IPv4,则使用该列表。
但是我想知道是否有这样的 Ansible 模块可以完成与 Fn::Cidr 相同的任务?
最佳答案
| ipsubnet
filter会做你想做的事,但它可能需要一些 {% for %}
循环,因为我不认为它被设计 (ootb) 一次执行 15 个子网
关于amazon-web-services - Ansible 与 AWS 内部函数 Fn::Cidr 有什么类比吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74867253/