您好,登錄后才能下訂單哦!
AWS 里面有個叫做 AWS System Manager 的服務,可以幫助管理員批量的自動化管理AWS的資源。比如說,我可以通過他的 Run Command 批量地對指定的EC2 實例組實現某個操作,如升級系統,執行一段腳本,更新agent等等
默認情況下,這個System Manager是沒有權限去訪問EC2的,所以第一步需要創建一個IAM role,授權System Manager去訪問EC2。它默認已經提供了一個 policy 叫做 AmazonEC2RoleforSSM,創建一個Role,選擇這個Policy就行了
下一步需要在EC2上綁定這個Role
如果只有幾個EC2實例可以手動操作 ,如果有上百臺手動操作就太慢了,我們可以考慮用腳本來配置。
安裝AWSPowerShell, 然后設定賬戶初始化,然后就可以獲取實例并注冊IAMRole了
#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 實例了
最后做過簡單的測試
點擊 run Command 然后選擇 AWS-RunPowerShellScript
輸入一個簡單的命令
選擇幾臺測試的實例機器
點擊Run
幾秒后查看結果
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。