步驟 4:在混合環境 (Linux) 中安裝 SSM Agent
本主題說明如何在混合環境中的 Linux 電腦上安裝 AWS Systems Manager SSM Agent。如果您計劃在混合環境中使用 Windows Server 電腦,請參閱下一個步驟:步驟 5:在混合環境 (Windows) 中安裝 SSM Agent。
此程序適用於現場部署或混合環境中的伺服器和虛擬機器 (VM)。若要在 Linux 的 EC2 執行個體上下載並安裝 SSM Agent,請參閱在 Linux 的 EC2 執行個體上安裝和設定 SSM Agent。
開始之前,請找出您稍早在步驟 3:為混合環境建立受管執行個體啟用中完成受管執行個體啟用後傳送給您的啟用代碼和啟用 ID。您會在以下程序中指定代碼和 ID。
下列指令碼中的 URL 可讓您從任何 AWS 區域 中下載 SSM Agent。如果您想要從特定區域下載代理程式,複製適用於您作業系統的 URL,然後將 region
取代為適當的值。
region
代表 AWS Systems Manager 支援之 AWS 區域 的識別符,例如 us-east-2
代表美國東部 (俄亥俄) 區域。如需 region
值的清單,請參閱《Amazon Web Services 一般參考》中 Systems Manager 服務端點中的 Region (區域) 資料欄。
例如,若要從美國西部 (加利佛尼亞北部) 區域 (us-west-1) 下載適用於 Amazon Linux、RHEL、CentOS 和 SLES 64 位元的 SSM Agent,請使用以下 URL:
https://s3.us-west-1.amazonaws.com/amazon-ssm-us-west-1/latest/linux_amd64/amazon-ssm-agent.rpm
若要在混合環境中的伺服器和虛擬機器上安裝 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。
注意 請注意以下重要詳細資訊:
-
如果您是根使用者,則不需要
sudo
。 -
每個命令區塊都會指定
sudo -E amazon-ssm-agent
。只有在設定 HTTP 或 HTTPS 代理伺服器環境變數時才需要-E
。 -
即使下列 URL 顯示 'ec2-downloads-windows',這些仍是 Linux 作業系統的正確 URL。
region
代表 AWS Systems Manager 支援之 AWS 區域 的識別符,例如us-east-2
代表美國東部 (俄亥俄) 區域。如需region
值的清單,請參閱《Amazon Web Services 一般參考》中 Systems Manager 服務端點中的 Region (區域) 資料欄。 -
mkdir /tmp/ssm curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/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://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm sudo systemctl stop amazon-ssm-agent sudo -E amazon-ssm-agent -register -code "
activation-code
" -id "activation-id
" -region "region
" sudo systemctl start amazon-ssm-agent
mkdir /tmp/ssm curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm sudo dnf install -y /tmp/ssm/amazon-ssm-agent.rpm sudo systemctl stop amazon-ssm-agent sudo -E amazon-ssm-agent -register -code "
activation-code
" -id "activation-id
" -region "region
" sudo systemctl start amazon-ssm-agent
mkdir /tmp/ssm wget https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_amd64/amazon-ssm-agent.deb -O /tmp/ssm/amazon-ssm-agent.deb sudo dpkg -i /tmp/ssm/amazon-ssm-agent.deb sudo service amazon-ssm-agent stop sudo -E amazon-ssm-agent -register -code "
activation-code
" -id "activation-id
" -region "region
" sudo service amazon-ssm-agent start
mkdir /tmp/ssm sudo curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_arm/amazon-ssm-agent.deb -o /tmp/ssm/amazon-ssm-agent.deb sudo dpkg -i /tmp/ssm/amazon-ssm-agent.deb sudo service amazon-ssm-agent stop sudo -E amazon-ssm-agent -register -code "
activation-code
" -id "activation-id
" -region "region
" sudo service amazon-ssm-agent start
mkdir /tmp/ssm sudo wget https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm sudo rpm --install amazon-ssm-agent.rpm sudo systemctl stop amazon-ssm-agent sudo -E amazon-ssm-agent -register -code "
activation-code
" -id "activation-id
" -region "region
" sudo systemctl enable amazon-ssm-agent sudo systemctl start amazon-ssm-agent
-
使用 .deb 套件
mkdir /tmp/ssm curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_amd64/amazon-ssm-agent.deb -o /tmp/ssm/amazon-ssm-agent.deb sudo dpkg -i /tmp/ssm/amazon-ssm-agent.deb sudo service amazon-ssm-agent stop sudo -E amazon-ssm-agent -register -code "
activation-code
" -id "activation-id
" -region "region
" sudo service amazon-ssm-agent start -
使用 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 執行個體。
繼續進行步驟 5:在混合環境 (Windows) 中安裝 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 的其他功能。如需可用組態屬性及其預設值的最新清單,請參閱組態屬性定義
取消註冊並重新註冊受管執行個體
透過從 AWS CLI 或 Tools for Windows PowerShell 中呼叫 DeregisterManagedInstance API 操作,可取消註冊受管執行個體。以下是範例 CLI 命令:
aws ssm deregister-managed-instance --instance-id
"mi-1234567890"
您可以在取消註冊受管執行個體之後重新註冊它。使用下列程序來重新註冊受管執行個體。完成程序後,您的受管執行個體會再次顯示在受管執行個體清單中。
若要在 Linux 混合機器中重新註冊受管執行個體
-
執行下列 命令。確保將預留位置值取代為您在建立受管執行個體啟用時產生的啟用碼和啟用 ID,以及取代為您想要從中下載 SSM Agent 的區域識別符。
echo "yes" | sudo amazon-ssm-agent -register -code "
activation-code
" -id "activation-id
" -region "region
" && sudo systemctl restart amazon-ssm-agent
在 Linux 混合環境中對 SSM Agent 安裝進行疑難排解
使用下列資訊以協助您對 Linux 混合環境中的 SSM Agent 安裝進行疑難排解。
您會收到 DeliveryTimedOut 錯誤
問題:將一個 AWS 帳戶 中的 Amazon EC2 執行個體設定為單獨 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