Json 使用bash和AWS CLI从所有区域解除关联并释放所有弹性IP地址的脚本
我正在学习如何使用AWS基础架构和CLI工具。我使用Russell Jurney编写的另一个CLI脚本终止了许多带有公共IP的EC2实例 我试图修改它来发布所有的公共IP,但由于我对脚本和json非常陌生,所以我无法理解这一点。如何在此脚本中寻址所有公共IP,并执行正确的循环以释放每个IPJson 使用bash和AWS CLI从所有区域解除关联并释放所有弹性IP地址的脚本,json,bash,amazon-ec2,aws-cli,Json,Bash,Amazon Ec2,Aws Cli,我正在学习如何使用AWS基础架构和CLI工具。我使用Russell Jurney编写的另一个CLI脚本终止了许多带有公共IP的EC2实例 我试图修改它来发布所有的公共IP,但由于我对脚本和json非常陌生,所以我无法理解这一点。如何在此脚本中寻址所有公共IP,并执行正确的循环以释放每个IP for region in `aws ec2 describe-regions | jq -r .Regions[].RegionName` do echo "Releasing Elastic IPs
for region in `aws ec2 describe-regions | jq -r .Regions[].RegionName`
do
echo "Releasing Elastic IPs in region $region..."
for address in 'aws ecs describe-regions | jq -r .Regions[].RegionName[]'
do
aws ec2 disassociate-address --region $region | \
jq -r .Reservations[].Instances[].PrivateIpAddress| \
xargs -L 1 -I {} aws ec2 modify-instance-attribute \
--region $region \
--allocation-id {}\
--public-ip {}
aws ec2 release-address --region $region | \
jq -r .Reservations[].Instances[].PrivateIpAddress | \
xargs -L 1 -I {} aws ec2 terminate-instances \
--region $region \
--allocation-id {}
--instance-id {}
done
done
因此,你的目标是:
你的代码有什么问题?
for region in $(aws ec2 describe-regions --profile default --output text | cut -f4)
do
for address in $(aws ec2 describe-addresses --region $region --profile default --query 'Addresses[].AssociationId' --output text)
do
echo -e "Disassociating $address from $region now..."
aws ec2 disassociate-address --association-id $address --region $region --profile default
for pubip in $(aws ec2 describe-addresses --region $region --profile default --query 'Addresses[].PublicIp' --output text)
do
echo -e "Now Releasing the PublicIP $pubip from region $region"
aws ec2 release-address --public-ip $pubip --region $region --profile default
done
done
done