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 實例

相關文章
相關標籤/搜索