AWS SSM 代理 - 使用 aws cli,有没有办法列出所有缺少 SSM 代理的 AWS 实例?
AWS SSM Agent - Using the aws cli, is there a way to list all the AWS instances that are missing the SSM agent?
我需要审核大量 AWS 账户以确定哪些 EC2 实例缺少 SSM 代理。然后我需要输出所有这些实例及其标签。
运行 aws ssm describe-instance-information
列出了所有安装了代理且 运行 的实例,但它没有列出缺少代理或可能已打开的系统的实例关闭。
这将打印您所有实例的列表,"success" 打印在托管实例的下方。
for instance in $(aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId]' --output text )
do;
managed=$(aws ssm describe-instance-information --filters "Key=InstanceIds,Values=$instance" --query 'InstanceInformationList[*].[AssociationStatus]' --output text)
echo "$instance $managed";
done
要添加一组简单但格式不正确的标签,请将 echo 行替换为
if [[ "$managed" != "Success" ]]; then
managed="Fail";
fi
echo "$instance $managed"
aws --profile GC-Staging ec2 describe-instances --instance-id $instance --query 'Reservations[*].Instances[*].[Tags[*].Value]' --output text
#!/bin/bash
for instance in $(aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId]' --output text )
do
managed=$(aws ssm describe-instance-information --filters "Key=InstanceIds,Values=$instance" --query 'InstanceInformationList[*].[AssociationStatus]' --output text)
if [[ "$managed" != "Success" ]]; then
managed="Not Managed";
fi
aws ec2 describe-instances --instance-id $instance --output text --query 'Reservations[*].Instances[*].[InstanceId, Placement.AvailabilityZone, [Tags[?Key==`Name`].Value] [0][0], [Tags[?Key==`App`].Value] [0][0], [Tags[?Key==`Product`].Value] [0][0], [Tags[?Key==`Team`].Value] [0][0] ]'
echo "$managed"
done
保存并使脚本可执行,然后运行
script.sh > file.tsv
最后导入到excel
我需要审核大量 AWS 账户以确定哪些 EC2 实例缺少 SSM 代理。然后我需要输出所有这些实例及其标签。
运行 aws ssm describe-instance-information
列出了所有安装了代理且 运行 的实例,但它没有列出缺少代理或可能已打开的系统的实例关闭。
这将打印您所有实例的列表,"success" 打印在托管实例的下方。
for instance in $(aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId]' --output text )
do;
managed=$(aws ssm describe-instance-information --filters "Key=InstanceIds,Values=$instance" --query 'InstanceInformationList[*].[AssociationStatus]' --output text)
echo "$instance $managed";
done
要添加一组简单但格式不正确的标签,请将 echo 行替换为
if [[ "$managed" != "Success" ]]; then
managed="Fail";
fi
echo "$instance $managed"
aws --profile GC-Staging ec2 describe-instances --instance-id $instance --query 'Reservations[*].Instances[*].[Tags[*].Value]' --output text
#!/bin/bash
for instance in $(aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId]' --output text )
do
managed=$(aws ssm describe-instance-information --filters "Key=InstanceIds,Values=$instance" --query 'InstanceInformationList[*].[AssociationStatus]' --output text)
if [[ "$managed" != "Success" ]]; then
managed="Not Managed";
fi
aws ec2 describe-instances --instance-id $instance --output text --query 'Reservations[*].Instances[*].[InstanceId, Placement.AvailabilityZone, [Tags[?Key==`Name`].Value] [0][0], [Tags[?Key==`App`].Value] [0][0], [Tags[?Key==`Product`].Value] [0][0], [Tags[?Key==`Team`].Value] [0][0] ]'
echo "$managed"
done
保存并使脚本可执行,然后运行
script.sh > file.tsv
最后导入到excel