AWS System Manger 批量操做EC2 实例

AWS 里面有个叫作 AWS System Manager 的服务,能够帮助管理员批量的自动化管理AWS的资源。好比说,我能够经过他的 Run Command 批量地对指定的EC2 实例组实现某个操做,如升级系统,执行一段脚本,更新agent等等ide

AWS System Manger 批量操做EC2 实例

默认状况下,这个System Manager是没有权限去访问EC2的,因此第一步须要建立一个IAM role,受权System Manager去访问EC2。它默认已经提供了一个 policy 叫作 AmazonEC2RoleforSSM,建立一个Role,选择这个Policy就好了测试

AWS System Manger 批量操做EC2 实例

下一步须要在EC2上绑定这个Rolecode

AWS System Manger 批量操做EC2 实例

若是只有几个EC2实例能够手动操做 ,若是有上百台手动操做就太慢了,咱们能够考虑用脚原本配置。blog

安装AWSPowerShell, 而后设定帐户初始化,而后就能够获取实例并注册IAMRole了ip

#Install-Module AWSPowerShell -force

Set-AWSCredential -AccessKey XXXXX  -SecretKey YYYYYY -StoreAs test

#Get-AWSCredential -ListProfileDetail

Initialize-AWSDefaults -ProfileName test -Region ap-southeast-2

$instances=Get-EC2Instance | select -ExpandProperty instances
foreach($item in $instances){

    $iamrole=$item  | select -ExpandProperty IamInstanceProfile
    if($iamrole -eq $null){

        Register-EC2IamInstanceProfile -InstanceId $item.InstanceId -IamInstanceProfile_Arn arn:aws:iam::3861158221239:instance-profile/AmazonEC2RoleForSSM
    }

}

咱们能够经过下面的脚原本判断是否绑定成功资源

$filter = New-Object Amazon.EC2.Model.Filter -Property @{Name = "iam-instance-profile.arn"; Value = "arn:aws:iam::386115804199:instance-profile/AmazonEC2RoleForSSM"} 
$ec2 = @(Get-EC2Instance -Filter $filter)
$ec2instances = $ec2.instances  #returns instances with its attributes
$ec2instances.privateipaddress  #

成功以后咱们返回 System manager的界面,在Managed Instances 下面能够看见全部的EC2 实例了it

AWS System Manger 批量操做EC2 实例

最后作过简单的测试自动化

点击 run Command 而后选择 AWS-RunPowerShellScriptio

AWS System Manger 批量操做EC2 实例

输入一个简单的命令
AWS System Manger 批量操做EC2 实例ast

选择几台测试的实例机器
AWS System Manger 批量操做EC2 实例

点击Run

几秒后查看结果

AWS System Manger 批量操做EC2 实例

相关文章
相关标签/搜索