UPD: updated inventory scripts

This commit is contained in:
xpk 2023-07-18 18:48:31 +08:00
parent 9a7b45a26d
commit 2b3fe2c261
Signed by: xpk
GPG Key ID: CD4FF6793F09AB86
3 changed files with 64 additions and 5 deletions

View File

@ -8,7 +8,9 @@ function formatprint() {
rm -f /tmp/formatprint.tmp
}
# Generate inventory of ec2, rds, lb, and s3 buckets.
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId, Tags[?Key==`Name`].Value[] | [0], PlatformDetails, InstanceType,PrivateIpAddress, PublicIpAddress]' --output json | jq -cr '.[][] | @csv' | tr -d '[\" ' | formatprint EC2
# Generate inventory of ec2 in all regions
aws --region=us-east-1 ec2 describe-regions --query Regions[].RegionName --output text | sed -e 's/\t/\n/g' | while read r; do
echo "Region: $r"
aws --region=$r ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId, Tags[?Key==`Name`].Value[] | [0], PlatformDetails, InstanceType,PrivateIpAddress, PublicIpAddress]' --output json | jq -cr '.[][] | @csv' | tr -d '[\" ' | formatprint EC2
done

View File

@ -2,14 +2,18 @@
function formatprint() {
cat - > /tmp/formatprint.tmp
echo "# $1 ($(cat /tmp/formatprint.tmp | wc -l))"
echo "## $1 ($(cat /tmp/formatprint.tmp | wc -l))"
#cat /tmp/formatprint.tmp | sed -e 's/^/ /g'
cat /tmp/formatprint.tmp | column -t -s, | sed -e 's/^/ /g'
rm -f /tmp/formatprint.tmp
}
# Generate inventory of ec2, rds, lb, and s3 buckets.
aws --region=us-east-1 ec2 describe-regions --query Regions[].RegionName --output text | sed -e 's/\t/\n/g' | while read r; do
export AWS_DEFAULT_REGION=$r
echo "---"
echo "# Region: $r"
echo "---"
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId, Tags[?Key==`Name`].Value[] | [0], PlatformDetails, InstanceType,PrivateIpAddress]' --output json | jq -cr '.[][] | @csv' | tr -d '[\" ' | formatprint EC2
aws rds describe-db-instances --query 'DBInstances[*].[DBInstanceIdentifier, DBInstanceClass, Engine, AllocatedStorage]' --output json | jq -cr '.[]|@csv' | tr -d \" | formatprint RDS
@ -31,5 +35,6 @@ aws cloudfront list-distributions --query 'DistributionList.Items[*].[DomainName
aws --no-cli-pager route53 list-hosted-zones --query 'HostedZones[*].[Name,ResourceRecordSetCount]' --output json | jq -cr '.[]|@csv' | tr -d \" | sort -k1 | formatprint R53-RecordCount
done
# echo "# IAM roles"
# aws iam list-roles | jq -cr '.Roles[] | .RoleName' | grep -v AWSServiceRoleFor

52
aws/aws-inventory2.sh Executable file
View File

@ -0,0 +1,52 @@
#!/bin/bash
function list-resources-in-region {
export AWS_DEFAULT_REGION=$1
echo "---"
echo "# Region: $r"
echo "---"
echo -e "\n## EC2:"
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId, Tags[?Key==`Name`].Value[] | [0], PlatformDetails, InstanceType,PrivateIpAddress]' --output json | jq -cr '.[][] | @tsv' | tr -d '[\" '
echo -e "\n## RDS:"
aws rds describe-db-instances --query 'DBInstances[*].[DBInstanceIdentifier, DBInstanceClass, Engine, AllocatedStorage]' --output json | jq -cr '.[]|@tsv' | tr -d \"
echo -e "\n## ElastiCache:"
aws elasticache describe-cache-clusters --query 'CacheClusters[*].[CacheClusterId, CacheNodeType, Engine, EngineVersion]' --output json | jq -cr '.[]|@tsv' | tr -d \"
echo -e "\n## ELB:"
aws elb describe-load-balancers --query 'LoadBalancerDescriptions[*].[LoadBalancerName,DNSName,Scheme]' --output json | jq -cr '.[]|@tsv' | tr -d \"
echo -e "\n## ALB:"
aws elbv2 describe-load-balancers --query 'LoadBalancers[*].[LoadBalancerName,DNSName,Scheme]' --output json | jq -cr '.[]|@tsv' | tr -d \"
echo -e "\n## VPC:"
aws ec2 describe-vpcs --query 'Vpcs[*].[VpcId, CidrBlock]' --output json | jq -cr '.[]|@tsv' | tr -d \"
echo -e "\n## S3_Buckets:"
aws s3api list-buckets --output text | awk '{print $NF}'
echo -e "\n## ECS_Clusters:"
aws ecs list-clusters | jq -cr '.[][]' | awk -F/ '{print $NF}'
echo -e "\n## EKS_Clusters:"
aws eks list-clusters | jq '.[][]' | awk -F/ '{print $NF}'
echo -e "\n## Cloudfront:"
aws cloudfront list-distributions --query 'DistributionList.Items[*].[DomainName]' --output text
echo -e "\n## Route53_zones:"
aws --no-cli-pager route53 list-hosted-zones --query 'HostedZones[].Name' --output text
}
# Generate inventory of ec2, rds, lb, and s3 buckets.
aws --region=us-east-1 ec2 describe-regions --query Regions[].RegionName --output text | sed -e 's/\t/\n/g' | while read r; do
list-resources-in-region $r > /tmp/aws-inventory-$r.txt &
done
echo "This may take a moment..."
sleep 50
cat /tmp/aws-inventory*.txt
rm -f /tmp/aws-inventory*.txt