首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS SSM代理-使用aws cli,是否可以列出缺少SSM代理的所有AWS实例?

AWS SSM代理-使用aws cli,是否可以列出缺少SSM代理的所有AWS实例?
EN

Stack Overflow用户
提问于 2020-02-06 05:05:31
回答 2查看 843关注 0票数 3

我需要审计大量的AWS帐户,以确定哪些EC2实例缺少SSM代理。然后我需要输出所有这些实例和它们的标签。

running aws ssm describe-instance-information将列出已安装并正在运行代理的所有实例,但不会列出缺少代理的实例或可能已关闭的系统。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-26 09:57:42

代码语言:javascript
复制
#!/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中。

票数 2
EN

Stack Overflow用户

发布于 2020-03-20 11:09:44

这将打印所有实例的列表,并在托管实例下面打印"success“。

代码语言:javascript
复制
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

要添加一组简单但格式不正确的标记,请将回显行替换为

代码语言:javascript
复制
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 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60084104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档