本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在混合 Linux 節點上安裝 SSM Agent
本主題說明如何在混合多雲端環境中的非 EC2 (Amazon Elastic Compute Cloud) Linux 機器上安裝 AWS Systems Manager SSM Agent 。如果您計劃在混合多雲端環境中使用 Windows Server 機器,請參閱下一個步驟:在混合 Windows Server 節點上安裝 SSM Agent。
重要
此程序適用於混合多雲端環境中的 EC2 執行個體以外的機器類型。若要在 Linux 的 EC2 執行個體上下載並安裝 SSM Agent,請參閱在 Linux EC2 執行個體上手動安裝和解除安裝 SSM Agent。
開始之前,請找出您稍早在 建立混合啟用,以向 Systems Manager 註冊節點 中完成混合啟用後傳送給您的啟用代碼和啟用 ID。您需在以下程序中指定代碼和 ID。
在混合多雲端環境中的非 EC2 機器上安裝 SSM Agent
-
登入混合多雲端環境中的伺服器或虛擬機器。
-
如果您使用 HTTP 或 HTTPS 代理伺服器,則必須在目前的 Shell 工作階段中設定
http_proxy
或https_proxy
環境變數。如果您不使用代理伺服器,則可以略過此步驟。對於 HTTP 代理伺服器,請在命令列輸入下列命令:
export http_proxy=http://
hostname
:port
export https_proxy=http://hostname
:port
對於 HTTPS 代理伺服器,請在命令列輸入下列命令:
export http_proxy=http://
hostname
:port
export https_proxy=https://hostname
:port
-
複製以下其中一個命令區塊並貼到 SSH。將預留位置值取代為您在建立受管節點啟用時產生的啟用碼和啟用 ID,以及取代為您想要從中下載 SSM Agent 的 AWS 區域 識別符,然後按
Enter
。重要
請注意以下重要詳細資訊:
-
使用
ssm-setup-cli
進行non-EC2 安裝可最大限度地提高 Systems Manager 安裝和組態的安全性。 -
如果您是根使用者,則不需要
sudo
。 -
ssm-setup-cli
從與建立混合式啟用的 AWS 區域 相同位置下載。 -
ssm-setup-cli
支援用於確定代理程式下載來源的manifest-url
選項。除非您的組織需要,否則請勿為此選項指定值。 -
註冊執行個體時,請僅使用為
ssm-setup-cli
提供的下載連結。ssm-setup-cli
不應單獨存放以供日後使用。 -
您可以使用此處
提供的指令碼來驗證 ssm-setup-cli
的簽章。
region
代表 支援的 AWS 區域 識別符 AWS Systems Manager,例如us-east-2
美國東部 (俄亥俄) 區域。如需支援的region
值的清單,請參閱《Amazon Web Services 一般參考》中 Systems Manager 服務端點一節的區域欄位。此外,
ssm-setup-cli
還包括下列選項:-
version
:有效值為latest
和stable
。 -
downgrade
:允許 SSM Agent 降級至較早的版本。指定true
以安裝較早版本的代理程式。 -
skip-signature-validation
:在下載和安裝代理程式期間略過簽章驗證。
-
mkdir /tmp/ssm curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/3.0.1479.0/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm sudo stop amazon-ssm-agent sudo -E amazon-ssm-agent -register -code "
activation-code
" -id "activation-id
" -region "region
" sudo start amazon-ssm-agent
mkdir /tmp/ssm curl https://amazon-ssm-
region
.s3.region
.amazonaws.com/latest/linux_amd64/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli sudo chmod +x /tmp/ssm/ssm-setup-cli sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code
" -id "activation-id
" -region "region
"
mkdir /tmp/ssm curl https://amazon-ssm-
region
.s3.region
.amazonaws.com/latest/linux_amd64/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli sudo chmod +x /tmp/ssm/ssm-setup-cli sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code
" -activation-id "activation-id
" -region "region
"
mkdir /tmp/ssm curl https://amazon-ssm-
region
.s3.region
.amazonaws.com/latest/linux_amd64/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli sudo chmod +x /tmp/ssm/ssm-setup-cli sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code
" -activation-id "activation-id
" -region "region
"
mkdir /tmp/ssm curl https://amazon-ssm-
region
.s3.region
.amazonaws.com/latest/debian_amd64/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli sudo chmod +x /tmp/ssm/ssm-setup-cli sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code
" -activation-id "activation-id
" -region "region
"
mkdir /tmp/ssm curl https://amazon-ssm-
region
.s3.region
.amazonaws.com/latest/debian_arm/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli sudo chmod +x /tmp/ssm/ssm-setup-cli sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code
" -activation-id "activation-id
" -region "region
"
-
使用 .deb 套件
mkdir /tmp/ssm curl https://amazon-ssm-
region
.s3.region
.amazonaws.com/latest/debian_amd64/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli sudo chmod +x /tmp/ssm/ssm-setup-cli sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code
" -activation-id "activation-id
" -region "region
" -
使用 Snap 套件
您不需要指定 URL 以供下載,因為
snap
命令會自動從 Snap 應用程式商店下載代理程式,網址為 https://snapcraft.io 。 在 Ubuntu Server 20.10 STR & 20.04、18.04 和 16.04 LTS 上,SSM Agent 安裝程式檔案 (包括代理程式二進位程式碼和組態檔案) 存放在以下目錄中:
/snap/amazon-ssm-agent/current/
。如果您變更此目錄中的任何組態檔案,則必須將這些檔案從/snap
目錄複製到/etc/amazon/ssm/
目錄。日誌和程式庫檔案未變更 (/var/lib/amazon/ssm
、/var/log/amazon/ssm
)。sudo snap install amazon-ssm-agent --classic sudo systemctl stop snap.amazon-ssm-agent.amazon-ssm-agent.service sudo /snap/amazon-ssm-agent/current/amazon-ssm-agent -register -code "
activation-code
" -id "activation-id
" -region "region
" sudo systemctl start snap.amazon-ssm-agent.amazon-ssm-agent.service重要
Snap 商店中的候選頻道包含最新版本的 SSM Agent,而不是穩定的頻道。如果您想追蹤候選頻道上的 SSM Agent 版本資訊,請在 Ubuntu Server 18.04 和 16.04 LTS 64 位元受管節點上執行下列命令。
sudo snap switch --channel=candidate amazon-ssm-agent
該命令會下載並安裝 SSM Agent 到混合多雲端環境中的啟用混合模式機器上。該命令會停止 SSM Agent,然後使用 Systems Manager 服務來註冊此機器。此機器現在是受管節點。為 Systems Manager 設定的 Amazon EC2 執行個體也是受管節點。不過,在 Systems Manager 主控台中,啟用混合模式節點的字首為 "mi-",有別於 Amazon EC2 執行個體。
繼續進行在混合 Windows Server 節點上安裝 SSM Agent。
設定私有金鑰自動輪換
若要強化您的安全狀態,您可以設定 AWS Systems Manager Agent (SSM Agent) 自動輪換混合雲端和多雲端環境的私有金鑰。您可以使用 SSM Agent 3.0.1031.0 版或更新版本來存取此功能。使用下列程序開啟此功能。
設定 SSM Agent 以輪換混合多雲端環境的私有金鑰
-
在 Linux 機器中導覽至
/etc/amazon/ssm/
,或在 Windows 機器中導覽至C:\Program Files\Amazon\SSM
。 -
將
amazon-ssm-agent.json.template
的內容複製到名為amazon-ssm-agent.json
的新檔案。將amazon-ssm-agent.json
儲存在amazon-ssm-agent.json.template
所在的相同目錄中。 -
查找
Profile
、KeyAutoRotateDays
。輸入您想要的自動私有金鑰輪換之間的天數。 -
重新啟動 SSM Agent。
每次變更組態時,請重新啟動 SSM Agent。
您可以使用相同的程序來自訂 SSM Agent 的其他功能。如需可用組態屬性及其預設值的最新清單,請參閱組態屬性定義
取消註冊並重新註冊受管節點 (Linux)
您可以透過從 AWS CLI 或 Tools for Windows PowerShell 呼叫 DeregisterManagedInstance API 操作來取消註冊混合啟用的受管節點。以下是範例 CLI 命令:
aws ssm deregister-managed-instance --instance-id
"mi-1234567890"
若要移除代理程式的剩餘註冊資訊,請移除 amazon-ssm-agent.json
檔案中的 IdentityConsumptionOrder
索引鍵。然後,根據您的安裝類型,執行下列其中一個命令。
在使用 Snap 套件安裝 SSM Agent的Ubuntu Server節點上:
sudo /snap/amazon-ssm-agent/current/amazon-ssm-agent -register -clear
在所有其他 Linux 安裝上:
amazon-ssm-agent -register -clear
您可以在取消註冊機器之後重新註冊它。使用以下程序來重新註冊機器。完成程序後,您的受管節點會再次顯示在受管節點清單中。
在非 EC2 Linux 機器上重新註冊受管節點
-
連線至您的機器。
-
執行下列命令。確保將預留位置值取代為您在建立受管節點啟用時產生的啟用碼和啟用 ID,以及取代為您想要從中下載 SSM Agent 的區域識別符。
echo "yes" | sudo /tmp/ssm/ssm-setup-cli -register -activation-code "
activation-code
" -activation-id "activation-id
" -region "region
診斷並解決在 EC2 Linux 機器上安裝 SSM Agent 的問題
使用以下資訊,解決在混合多雲端環境中的啟用混合模式 Linux 機器上安裝 SSM Agent 的問題。
您會收到 DeliveryTimedOut 錯誤
問題:將機器設定為個別的 AWS 帳戶 受管節點時 AWS 帳戶,您會在執行命令以在目標機器SSM Agent上安裝 DeliveryTimedOut
後收到 。
解決方案:DeliveryTimedOut
是此情況的預期回應代碼。在目標節點上安裝 SSM Agent 的命令會變更來源節點的節點 ID。因為節點 ID 已變更,所以來源節點無法回覆在執行時命令已失敗、已完成或已逾時的目標節點。
無法載入節點關聯
問題:執行安裝命令之後,您會在 SSM Agent 錯誤日誌中看到下列錯誤:
Unable to load instance associations, unable to retrieve associations
unable to retrieve associations error occurred in
RequestManagedInstanceRoleToken: MachineFingerprintDoesNotMatch: Fingerprint
doesn't match
如果機器 ID 在重新開機後未持續存在,則會看到此錯誤。
解決方案:若要解決此問題,請執行下列命令。此命令會強制機器 ID 在重新開機後持續存在。
umount /etc/machine-id systemd-machine-id-setup