步驟 3:在混合多雲端環境 (Linux) 中安裝 SSM Agent - AWS Systems Manager

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

步驟 3:在混合多雲端環境 (Linux) 中安裝 SSM Agent

本主題說明如何 AWS Systems Manager SSM Agent在混合式和多雲端環境中的非 EC2 (Amazon 彈性運算雲端) Linux 機器上安裝。如果您計劃在混合多雲端環境中使用 Windows Server 機器,請參閱下一個步驟:步驟 4:在混合多雲端環境 (Windows) 中安裝 SSM Agent

重要

此程序適用於混合多雲端環境中的 EC2 執行個體以外的機器類型。若要在 Linux 的 EC2 執行個體上下載並安裝 SSM Agent,請參閱在 Linux 的 EC2 執行個體使用 SSM Agent

開始之前,請找出您稍早在 步驟 2:為混合多雲環境建立混合啟用 中完成混合啟用後傳送給您的啟用代碼和啟用 ID。您會在以下程序中指定代碼和 ID。

地區代表 AWS 區域 支援的識別碼 AWS Systems Manager,us-east-2例如美國東部 (俄亥俄) 區域。如需支援的 region 值的清單,請參閱《Amazon Web Services 一般參考》Systems Manager 服務端點一節的區域資料欄。

例如,若要從美國東部 (俄亥俄) 區域 (us-east-2) 下載適用於 Amazon Linux、RHEL、CentOS 和 SLES 64 位元的 SSM Agent,請使用以下 URL:

https://s3.us-east-2.amazonaws.com/amazon-ssm-us-east-2/latest/linux_amd64/amazon-ssm-agent.rpm
Amazon Linux 1,Amazon Linux 2, RHEL, Oracle Linux, CentOS, and SLES
  • x86_64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/linux_amd64/amazon-ssm-agent.rpm

  • x86

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/linux_386/amazon-ssm-agent.rpm

  • ARM64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/linux_arm64/amazon-ssm-agent.rpm

RHEL 6.x, CentOS 6.x
  • x86_64

    https://s3.region.amazonaws.com/amazon-ssm-region/3.0.1479.0/linux_amd64/amazon-ssm-agent.rpm

  • x86

    https://s3.region.amazonaws.com/amazon-ssm-region/3.0.1479.0/linux_386/amazon-ssm-agent.rpm

Ubuntu Server
  • x86_64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_amd64/amazon-ssm-agent.deb

  • ARM64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_arm64/amazon-ssm-agent.deb

  • x86

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_386/amazon-ssm-agent.deb

Debian Server
  • x86_64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_amd64/amazon-ssm-agent.deb

  • ARM64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_arm64/amazon-ssm-agent.deb

Raspberry Pi OS (formerly Raspbian)
  • https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_arm/amazon-ssm-agent.deb

在混合多雲端環境中的非 EC2 機器上安裝 SSM Agent
  1. 登入混合多雲端環境中的伺服器或虛擬機器。

  2. 如果您使用 HTTP 或 HTTPS 代理伺服器,則必須在目前的 Shell 工作階段中設定 http_proxyhttps_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
  3. 複製以下其中一個命令區塊並貼到 SSH。將預留位置值取代為您在建立受管節點啟用時產生的啟用碼和啟用 ID,以及取代為您想要從中下載 SSM Agent 的 AWS 區域 識別符,然後按 Enter

    注意

    請注意以下重要詳細資訊:

    • 如果您是根使用者,則不需要 sudo

    • ssm-setup-cli從與建立混合式啟用相同 AWS 區域 的位置下載。

    • ssm-setup-cli 支援用於確定代理程式下載來源的 manifest-url 選項。除非您的組織需要,否則請勿為此選項指定值。

    • 註冊執行個體時,請僅使用為 ssm-setup-cli 提供的下載連結。ssm-setup-cli 不應單獨存放以供日後使用。

    • 您可以使用此處提供的指令碼來驗證的簽章ssm-setup-cli

    地區代表 AWS 區域 支援的識別碼 AWS Systems Manager,us-east-2例如美國東部 (俄亥俄) 區域。如需支援的 region 值的清單,請參閱《Amazon Web Services 一般參考》Systems Manager 服務端點一節的區域資料欄。

    此外,ssm-setup-cli 還包括下列選項:

    • version:有效值為 lateststable

    • 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"
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 執行個體。

繼續進行步驟 4:在混合多雲端環境 (Windows) 中安裝 SSM Agent

設定私有金鑰自動輪換

若要強化您的安全狀態,您可以將 AWS Systems Manager Agent (SSM Agent) 設定為自動輪替混合式和多雲端環境的私密金鑰。您可以使用 SSM Agent 3.0.1031.0 版或更新版本來存取此功能。使用下列程序開啟此功能。

設定 SSM Agent 以輪換混合多雲端環境的私有金鑰
  1. 在 Linux 機器中導覽至 /etc/amazon/ssm/,或在 Windows 機器中導覽至 C:\Program Files\Amazon\SSM

  2. amazon-ssm-agent.json.template 的內容複製到名為 amazon-ssm-agent.json 的新檔案。將 amazon-ssm-agent.json 儲存在 amazon-ssm-agent.json.template 所在的相同目錄中。

  3. 查找 ProfileKeyAutoRotateDays。輸入您想要的自動私有金鑰輪換之間的天數。

  4. 重新啟動 SSM Agent。

每次變更組態時,請重新啟動 SSM Agent。

您可以使用相同的程序來自訂 SSM Agent 的其他功能。如需可用組態屬性及其預設值的 up-to-date 清單,請參閱組 Config 屬性定義

取消註冊並重新註冊受管節點

您可以從 AWS CLI 或 Windows 工具呼叫 DeregisterManagedInstanceAPI 作業,以取消註冊混合啟動的受管理節點。 PowerShell以下是範例 CLI 命令:

aws ssm deregister-managed-instance --instance-id "mi-1234567890"

若要移除代理程式的剩餘註冊資訊,請移除 amazon-ssm-agent.json 檔案中的 IdentityConsumptionOrder 索引鍵。然後執行以下命令:

amazon-ssm-agent -register -clear

您可以在取消註冊機器之後重新註冊它。使用以下程序來重新註冊機器。完成程序後,您的受管節點會再次顯示在受管節點清單中。

在非 EC2 Linux 機器上重新註冊受管節點
  1. 連線至您的機器。

  2. 執行下列命令。確保將預留位置值取代為您在建立受管節點啟用時產生的啟用碼和啟用 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