我有一个 AWS VPC,其 v4 CIDR 为10.0.0.0/16
(我仔细检查了该 CIDR)。
当我尝试使用以下 ansible 任务在 AWS 上创建子网时
ec2_vpc_subnet:
vpc_id: "vpc-<the-non-default-vpc-id>"
az: eu-central-1c
cidr: "10.0.2.0/24"
state: present
然后我收到一个错误:
botocore.exceptions.ClientError: An error occurred (InvalidSubnet.Range) when calling the CreateSubnet operation: The CIDR '10.0.2.0/24' is invalid.
但是,使用 CLI
aws ec2 create-subnet --vpc-id vpc-<definetly-the-same-as-used-in-ansible> --availability-zone eu-central-1c --cidr-block 10.0.2.0/24
或 AWS Web 控制台工作正常。
造成这种行为的原因可能是什么,或者我没有正确使用 ansible 模块?
答案1
最后,我找到了问题所在。我发布的示例确实有效,但我删除了 IPv6-CIDR,因为我认为消息清楚地说明了问题是什么(IPv4)。
原来我有一个IPv6-CIDR 中的拼写错误。因此,当 Ansible/AWS 抱怨 IPv4 子范围无效时,请仔细检查您的 IPv6 设置(并始终在 StackExchange 上发布完整的示例...)。