在 Amazon Linux 或 Amazon Linux 2 上安裝 SSM 代理
本文Copy 自 https://docs.aws.amazon.com/zh_cn/systems-manager/latest/userguide/sysman-manual-agent-install.html
在 Amazon Linux 或 Amazon Linux 2 上安裝 SSM 代理
-
在例項上建立臨時目錄。
mkdir /tmp/ssm
-
更改為臨時目錄。
cd /tmp/ssm
-
使用以下命令之一下載和執行 SSM 安裝程式。
64 位例項:
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
32 位例項:
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_386/amazon-ssm-agent.rpm
-
執行以下命令確定 SSM 代理是否在執行。該命令應返回“amazon-ssm-agent is running”訊息。
Amazon Linux
sudo status amazon-ssm-agent
Amazon Linux 2
sudo systemctl status amazon-ssm-agent
-
如果上一條命令返回“amazon-ssm-agent is stopped”訊息,則執行以下命令。
-
啟動服務。
Amazon Linux
sudo start amazon-ssm-agent
Amazon Linux 2
sudo systemctl enable amazon-ssm-agent
sudo systemctl start amazon-ssm-agent
-
檢查代理的狀態。
Amazon Linux
sudo status amazon-ssm-agent
Amazon Linux 2
sudo systemctl status amazon-ssm-agent
-
Ubuntu Server
連線到您的 Ubuntu Server 例項,並執行下列過程之一中的步驟,在每個將使用 Systems Manager 執行命令的例項上安裝 SSM 代理。
主題
- 關於 64 位 Ubuntu Server 16.04 例項上的 SSM 代理安裝
- 將 SSM 代理安裝到 Ubuntu Server 18.04 和 16.04 LTS 64 位例項(帶 Snap 程式包)上
- 將 SSM 代理安裝到 Ubuntu Server 16.04 和 14.04 64 位例項(帶 deb 安裝程式包)上
- 將 SSM 代理 安裝到 Ubuntu Server 16.04 和 14.04 32 位例項上
關於 64 位 Ubuntu Server 16.04 例項上的 SSM 代理安裝
從通過使用 20180627
標識的 Ubuntu Server 16.04 AMI 建立的例項開始,已使用 Snap 程式包預安裝 SSM 代理。例如:ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-20180627
。在通過以前的 AMI 建立的例項上,您應繼續使用 deb 安裝程式包。
重要
請注意,如果例項上已安裝多個 SSM 代理(例如,一個 SSM 代理是使用 Snap 安裝的,一個 SSM 代理是使用 deb 安裝程式安裝的),則代理操作將無法正常工作。
您可通過執行以下步驟來檢查例項的源 AMI ID:
-
Open the Amazon EC2 console at https://console.aws.amazon.com/ec2/.
-
在左側導航窗格中,選擇 Instances。
-
選擇一個例項。
-
在 Description (描述) 選項卡上,在 AMI ID 欄位中找到值。
對於從 64 位 Ubuntu Server 16.04 AMI 建立的例項,請確保遵循 SSM 代理安裝型別的正確過程:
-
從帶有識別符號
20180627
的 AMI 或更高版本的 AMI 建立的例項:將 SSM 代理安裝到 Ubuntu Server 18.04 和 16.04 LTS 64 位例項(帶 Snap 程式包)上 -
從
20180627
之前的 AMI 建立的例項:將 SSM 代理安裝到 Ubuntu Server 16.04 和 14.04 64 位例項(帶 deb 安裝程式包)上
將 SSM 代理安裝到 Ubuntu Server 18.04 和 16.04 LTS 64 位例項(帶 Snap 程式包)上
-
預設情況下,SSM 代理安裝到 Ubuntu Server 18.04 和 16.04 LTS 64 位 AMI(帶識別符號
20180627
)或更高版本上。有關版本 16.04 AMI 的更多資訊,請參閱關於 64 位 Ubuntu Server 16.04 例項上的 SSM 代理安裝。如果您需要在本地伺服器上安裝 SSM 代理或者需要重新安裝代理,您可以使用以下指令碼。您無需為下載指定 URL,因為
snap
命令會自動從 Snap 應用商店(https://snapcraft.io) 下載代理。sudo snap install amazon-ssm-agent --classic
注意
請注意 Ubuntu Server 18.04 和 16.04 上的 SSM 代理的以下詳細資訊:
-
由於 Snap 的已知問題,使用
snap
命令時您可能會看到Maximum timeout exceeded
錯誤。如果您收到此錯誤,請執行以下命令(一次執行一條命令)來啟動代理、停止它並檢查其狀態:systemctl start snap.amazon-ssm-agent.amazon-ssm-agent.service
systemctl stop snap.amazon-ssm-agent.amazon-ssm-agent.service
systemctl status snap.amazon-ssm-agent.amazon-ssm-agent.service
-
在 Ubuntu Server 18.04 和 16.04 上,SSM 代理 安裝程式檔案(包括代理二進位制檔案和配置檔案)儲存在以下目錄中:/snap/amazon-ssm-agent/current/。如果您更改配置檔案 (amazon-ssm-agent.json.template 和 seelog.xml.template),則必須將這些檔案從 /snap 資料夾複製到 /etc/amazon/ssm/ 資料夾。日誌和庫檔案未更改 (/var/lib/amazon/ssm,/var/log/amazon/ssm)。
-
在 Ubuntu Server 18.04 上,僅使用 Snaps。不要安裝 deb 程式包。另外請確保例項上只安裝並運行了代理的一個例項。
-
在 Ubuntu Server 16.04 上,使用 Snap 或 deb 安裝程式包安裝 SSM 代理,具體取決於 16.04 AMI 的版本。有關更多資訊,請參閱 關於 64 位 Ubuntu Server 16.04 例項上的 SSM 代理安裝。
-
-
執行以下命令確定 SSM 代理是否在執行。
sudo snap list amazon-ssm-agent
-
如果上一條命令返回
amazon-ssm-agent is stopped
、inactive
或disabled
,則執行以下命令將啟動服務。sudo snap start amazon-ssm-agent
-
檢查代理的狀態。
sudo snap services amazon-ssm-agent
將 SSM 代理安裝到 Ubuntu Server 16.04 和 14.04 64 位例項(帶 deb 安裝程式包)上
-
如果您需要在本地伺服器上安裝 SSM 代理或者需要重新安裝代理,您可以使用以下指令碼。
重要
預設情況下,SSM 代理安裝到從 Ubuntu Server 16.04 LTS 64 位 AMI(帶識別符號
20180627
)或更高版本上。從帶更小識別符號(例如20171121.1
和20180522
)的 AMI 建立的例項將繼續使用 deb 安裝程式。如果 SSM 代理 與 Snap 一起安裝到例項上,並且您使用 deb 安裝程式包安裝或更新 SSM 代理,則安裝或 SSM 代理 操作可能失敗。有關更多資訊,請參閱 關於 64 位 Ubuntu Server 16.04 例項上的 SSM 代理安裝。
在例項上建立臨時目錄。
mkdir /tmp/ssm
更改為臨時目錄。
cd /tmp/ssm
執行以下命令。
wget https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_amd64/amazon-ssm-agent.deb
sudo dpkg -i amazon-ssm-agent.deb
-
執行以下命令確定 SSM 代理是否在執行。
sudo systemctl status amazon-ssm-agent
-
如果上一條命令返回
amazon-ssm-agent is stopped
、inactive
或disabled
,則執行以下命令將啟動服務。sudo systemctl enable amazon-ssm-agent
-
檢查代理的狀態。
sudo systemctl status amazon-ssm-agent
將 SSM 代理 安裝到 Ubuntu Server 16.04 和 14.04 32 位例項上
-
在例項上建立臨時目錄。
mkdir /tmp/ssm
更改為臨時目錄。
cd /tmp/ssm
執行以下命令。
wget https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_386/amazon-ssm-agent.deb
sudo dpkg -i amazon-ssm-agent.deb
-
執行以下命令確定 SSM 代理是否在執行:
sudo status amazon-ssm-agent
-
如果上一條命令返回
amazon-ssm-agent is stopped
、inactive
或disabled
,則執行以下命令。-
啟動代理:
sudo start amazon-ssm-agent
-
檢查代理的狀態:
sudo status amazon-ssm-agent
-
Red Hat Enterprise Linux (RHEL)
連線到您的 RHEL 例項並執行下列步驟來安裝 SSM 代理。使用 Systems Manager 對每個將執行命令的例項執行這些步驟。
在 Red Hat Enterprise Linux 上安裝 SSM 代理
-
在例項上建立臨時目錄。
mkdir /tmp/ssm
-
更改為臨時目錄。
cd /tmp/ssm
-
使用以下命令之一下載和執行 SSM 安裝程式。
64 位例項:
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
32 位例項:
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_386/amazon-ssm-agent.rpm
-
執行以下命令之一以確定 SSM 代理是否在執行。該命令應返回“amazon-ssm-agent is running”訊息。
RHEL 7.x:
sudo systemctl status amazon-ssm-agent
RHEL 6.x:
sudo status amazon-ssm-agent
-
如果上一條命令返回“amazon-ssm-agent is stopped”,則執行以下命令。
-
啟動服務。
RHEL 7.x:
sudo systemctl enable amazon-ssm-agent
sudo systemctl start amazon-ssm-agent
RHEL 6.x:
sudo start amazon-ssm-agent
-
檢查代理的狀態。
RHEL 7.x:
sudo systemctl status amazon-ssm-agent
RHEL 6.x:
sudo status amazon-ssm-agent
-
CentOS
連線到您的 CentOS 例項並執行下列步驟來安裝 SSM 代理。使用 Systems Manager 對每個將執行命令的例項執行這些步驟。
在 CentOS 上安裝 SSM 代理
-
在例項上建立臨時目錄。
mkdir /tmp/ssm
-
更改為臨時目錄。
cd /tmp/ssm
-
使用以下命令之一下載和執行 SSM 安裝程式。
64 位例項:
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
32 位例項:
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_386/amazon-ssm-agent.rpm
-
執行以下命令之一以確定 SSM 代理是否在執行。該命令應返回“amazon-ssm-agent is running”訊息。
CentOS 7.x:
sudo systemctl status amazon-ssm-agent
CentOS 6.x:
sudo status amazon-ssm-agent
-
如果上一條命令返回“amazon-ssm-agent is stopped”,則執行以下命令。
-
啟動服務。
CentOS 7.x:
sudo systemctl enable amazon-ssm-agent
sudo systemctl start amazon-ssm-agent
CentOS 6.x:
sudo start amazon-ssm-agent
-
檢查代理的狀態。
CentOS 7.x:
sudo systemctl status amazon-ssm-agent
CentOS 6.x:
sudo status amazon-ssm-agent
-
SUSE Linux Enterprise Server (SLES) 12
連線到您的 SLES 例項並執行下列步驟來安裝 SSM 代理。使用 Systems Manager 對每個將執行命令的例項執行這些步驟。
在 SUSE Linux Enterprise Server 上安裝 SSM 代理
-
在例項上建立臨時目錄。
mkdir /tmp/ssm
-
更改為臨時目錄。
cd /tmp/ssm
-
使用以下命令下載和執行 SSM 安裝程式。
64 位例項:
wget https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm sudo rpm --install amazon-ssm-agent.rpm
-
執行以下命令確定 SSM 代理是否在執行。該命令應返回“amazon-ssm-agent is running”訊息。
sudo systemctl status amazon-ssm-agent
-
如果上一條命令返回“amazon-ssm-agent is stopped”訊息,則執行以下命令。
-
啟動服務。
sudo systemctl enable amazon-ssm-agent sudo systemctl start amazon-ssm-agent
-
檢查代理的狀態。
sudo systemctl status amazon-ssm-agent
-
Raspbian
本部分包括有關如何在 Raspbian Jessie 和 Raspbian Stretch (包括 Raspberry Pi (32 位) 裝置) 上安裝 SSM 代理的資訊。
開始前的準備工作
要將 Raspbian 裝置設定為 Systems Manager 託管例項,您需要建立託管例項啟用。完成啟用後,您將收到一個啟用程式碼和 ID。此程式碼/ID 組合具有 Amazon EC2 訪問 ID 和私有金鑰的功能,可提供從託管例項對 Systems Manager 服務的安全訪問。在安全位置儲存啟用程式碼和 ID。有關啟用流程的更多資訊,請參閱在混合環境中設定 AWS Systems Manager。
連線到您的 Raspbian 裝置並執行下列步驟來安裝 SSM 代理。使用 Systems Manager 對每個將執行命令的例項執行這些步驟。
在 Raspbian 裝置上安裝 SSM 代理
-
在例項上建立臨時目錄。
mkdir /tmp/ssm
-
使用以下命令下載和執行 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
-
執行以下命令安裝 SSM 代理:
sudo dpkg -i /tmp/ssm/amazon-ssm-agent.deb
-
執行以下命令停止 SSM 代理。
sudo service amazon-ssm-agent stop
-
執行以下命令,以使用您完成託管例項啟用過程時收到的託管例項啟用程式碼和 ID 註冊代理。
sudo amazon-ssm-agent -register -code "
code
" -id "ID
" -region "region
" -
執行以下命令啟動 SSM 代理。
sudo service amazon-ssm-agent start
注意
如果在 SSM 代理錯誤日誌中看到以下錯誤,說明計算機 ID 在重啟後發生變更:
Unable to load instance associations, unable to retrieve associations unable to retrieve associations error occurred in RequestManagedInstanceRoleToken: MachineFingerprintDoesNotMatch: Fingerprint does not match
執行以下命令使計算機 ID 在重啟後保持不變。
umount /etc/machine-id
systemd-machine-id-setup
從特定區域下載 SSM 代理
如果需要從某特定 區域下載該代理,請複製作業系統的 URL,然後將 region
替換為適當的值。
區域
代表 AWS Systems Manager 支援的 AWS 區域的區域識別符號,例如 us-east-2
表示 US East (Ohio) Region。有關受支援區域
值的列表,請參閱 AWS General Reference 中的 AWS Systems Manager 區域和終端節點表的區域列。
例如,要從美國西部 1 區域下載適用於 Amazon Linux、RHEL、CentOS 和 SLES 64 位的 SSM 代理,請使用以下 URL:
https://s3-us-west-1.amazonaws.com/amazon-ssm-us-west-1/latest/linux_amd64/amazon-ssm-agent.rpm
如果下載失敗,請嘗試用 https://s3 替換 https://s3-區域
。區域
.
-
Amazon Linux、RHEL、CentOS 和 SLES 64 位:
https://s3-
區域
.amazonaws.com/amazon-ssm-region
/latest/linux_amd64/amazon-ssm-agent.rpm -
Amazon Linux、RHEL 和 CentOS 32 位:
https://s3-
區域
.amazonaws.com/amazon-ssm-region
/latest/linux_386/amazon-ssm-agent.rpm -
Ubuntu Server 64 位:
https://s3-
區域
.amazonaws.com/amazon-ssm-region
/latest/debian_amd64/amazon-ssm-agent.deb -
Ubuntu Server 32 位:
https://s3-
區域
.amazonaws.com/amazon-ssm-region
/latest/debian_386/amazon-ssm-agent.deb -
Raspbian:
https://s3-
region
.amazonaws.com/amazon-ssm-region
/latest/debian_arm/amazon-ssm-agent.deb