是否有一种简便的方法可以通过AWS命令行在特定子网中分配所有私有IP?
我想输入子网ID作为输入。 子网-0ca0b01xxxxxxxxxx 输出应该是子网中分配的所有专用IP的列表。 谢谢。
答案 0 :(得分:6)
您可以使用以下命令:
aws ec2 describe-instances --filters "Name=subnet-id,Values=**YourSubnetID**" --query 'Reservations[*].Instances[*].PrivateIpAddress' --output text
答案 1 :(得分:1)
先前的解决方案仅返回EC2实例的私有IP,但是您的RDS / ElastiCache实例或任何其他使用私有IP的AWS资源呢?您实际上需要使用describe-network-interfaces
命令。
这将返回单个或多个子网ID的所有私有IP地址:
aws ec2 describe-network-interfaces --filters Name=subnet-id,Values=subnet_id_1,subnet_id_2 --query 'NetworkInterfaces[*].PrivateIpAddress'
但是以前的命令也不能在所有情况下都起作用。例如,我在AWS上运行多个EKS集群,用于Kubernetes的VPC CNI插件可以为single Elastic Network Interface分配多个私有IP。在这种情况下,这是您需要使用的,它略有不同:
aws ec2 describe-network-interfaces --filters Name=subnet-id,Values=subnet_id_1,subnet_id_2 --query 'NetworkInterfaces[*].PrivateIpAddresses[*].PrivateIpAddress'