AWS系统经理批量操作EC2实例

  

AWS里面有个叫做AWS系统管理器的服务,可以帮助管理员批量的自动化管理AWS的资源,比如说,我可以通过他的运行命令批量地对指定的EC2实例组实现某个操作,如升级系统,执行一段脚本,更新代理等等

  

癆WS系统经理批量操作EC2实例"

  

默认情况下,这个系统管理器是没有权限去访问EC2的,所以第一步需要创建一个我的角色,授权系统管理器去访问EC2。它默认已经提供了一个政策叫做AmazonEC2RoleforSSM,创建一个角色,选择这个政策就行了

  

癆WS系统经理批量操作EC2实例"

  

下一步需要在EC2上绑定这个角色

  

癆WS系统经理批量操作EC2实例"

  

如果只有几个EC2实例可以手动操作,如果有上百台手动操作就太慢了,我们可以考虑用脚本来配置。

  

安装AWSPowerShell,然后设定账户初始化,然后就可以获取实例并注册IAMRole了

  
 <代码> # Install-Module AWSPowerShell force
  
  Set-AWSCredential accesskey XXXXX -SecretKey YYYYYY -StoreAs测试
  
  # Get-AWSCredential -ListProfileDetail
  
  Initialize-AWSDefaults - profilename测试地区ap-southeast-2
  
  $实例=Get-EC2Instance |选择-ExpandProperty实例
  foreach(项实例美元){
  
  iamrole=美元项目|选择-ExpandProperty IamInstanceProfile
  如果($ iamrole eq零美元){
  
  Register-EC2IamInstanceProfile -InstanceId美元项目。InstanceId -IamInstanceProfile_Arn攻击:aws:我::3861158221239:instance-profile/AmazonEC2RoleForSSM
  }
  
  } 
  

我们可以通过下面的脚本来判断是否绑定成功

  
 <代码> $过滤器=新对象Amazon.EC2.Model。过滤器属性@ {Name=" iam-instance-profile.arn”;值=" https://www.yisu.com/zixun/arn: aws:我::386115804199:instance-profile/AmazonEC2RoleForSSM "}
  美元美元ec2=@ (Get-EC2Instance过滤器过滤器)
  ec2instances=ec2美元。实例#返回实例的属性
  ec2instances美元。privateipaddress #  
  

成功之后我们返回系统管理器的界面,在管理实例下面可以看见所有的EC2实例了

  

癆WS系统经理批量操作EC2实例"

  

最后做过简单的测试

  

点击运行命令然后选择AWS-RunPowerShellScript

  

癆WS系统经理批量操作EC2实例"

  

输入一个简单的命令
癆WS系统经理批量操作EC2实例"

  

选择几台测试的实例机器
癆WS系统经理批量操作EC2实例"

  

点击运行   

几秒后查看结果

  

癆WS系统经理批量操作EC2实例"

AWS系统经理批量操作EC2实例