1. 程式人生 > >在 Amazon Linux 或 Amazon Linux 2 上安裝 SSM 代理

在 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 代理

  1. 在例項上建立臨時目錄。

     
    mkdir /tmp/ssm
  2. 更改為臨時目錄。

     
    cd /tmp/ssm
  3. 使用以下命令之一下載和執行 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
  4. 執行以下命令確定 SSM 代理是否在執行。該命令應返回“amazon-ssm-agent is running”訊息。

    Amazon Linux

     
    sudo status amazon-ssm-agent

    Amazon Linux 2

     
    sudo systemctl status amazon-ssm-agent
  5. 如果上一條命令返回“amazon-ssm-agent is stopped”訊息,則執行以下命令。

    1. 啟動服務。

      Amazon Linux

       
      sudo start amazon-ssm-agent

      Amazon Linux 2

       
      sudo systemctl enable amazon-ssm-agent
       
      sudo systemctl start amazon-ssm-agent
    2. 檢查代理的狀態。

      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 代理安裝

從通過使用 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:

  1. Open the Amazon EC2 console at https://console.aws.amazon.com/ec2/.

  2. 在左側導航窗格中,選擇 Instances

  3. 選擇一個例項。

  4. 在 Description (描述) 選項卡上,在 AMI ID 欄位中找到值。

對於從 64 位 Ubuntu Server 16.04 AMI 建立的例項,請確保遵循 SSM 代理安裝型別的正確過程:

將 SSM 代理安裝到 Ubuntu Server 18.04 和 16.04 LTS 64 位例項(帶 Snap 程式包)上

 

  1. 預設情況下,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 代理安裝

  2. 執行以下命令確定 SSM 代理是否在執行。

     
    sudo snap list amazon-ssm-agent
  3. 如果上一條命令返回 amazon-ssm-agent is stoppedinactive 或 disabled,則執行以下命令將啟動服務。

     
    sudo snap start amazon-ssm-agent
  4. 檢查代理的狀態。

     
    sudo snap services amazon-ssm-agent

將 SSM 代理安裝到 Ubuntu Server 16.04 和 14.04 64 位例項(帶 deb 安裝程式包)上

  1. 如果您需要在本地伺服器上安裝 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
  2. 執行以下命令確定 SSM 代理是否在執行。

     
    sudo systemctl status amazon-ssm-agent
  3. 如果上一條命令返回 amazon-ssm-agent is stoppedinactive 或 disabled,則執行以下命令將啟動服務。

     
    sudo systemctl enable amazon-ssm-agent
  4. 檢查代理的狀態。

     
    sudo systemctl status amazon-ssm-agent

將 SSM 代理 安裝到 Ubuntu Server 16.04 和 14.04 32 位例項

  1. 在例項上建立臨時目錄。

     
    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
  2. 執行以下命令確定 SSM 代理是否在執行:

     
    sudo status amazon-ssm-agent
  3. 如果上一條命令返回 amazon-ssm-agent is stoppedinactive 或 disabled,則執行以下命令。

    1. 啟動代理:

       
      sudo start amazon-ssm-agent
    2. 檢查代理的狀態:

       
      sudo status amazon-ssm-agent

Red Hat Enterprise Linux (RHEL)

連線到您的 RHEL 例項並執行下列步驟來安裝 SSM 代理。使用 Systems Manager 對每個將執行命令的例項執行這些步驟。

在 Red Hat Enterprise Linux 上安裝 SSM 代理

  1. 在例項上建立臨時目錄。

     
    mkdir /tmp/ssm
  2. 更改為臨時目錄。

     
    cd /tmp/ssm
  3. 使用以下命令之一下載和執行 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
  4. 執行以下命令之一以確定 SSM 代理是否在執行。該命令應返回“amazon-ssm-agent is running”訊息。

    RHEL 7.x:

     
    sudo systemctl status amazon-ssm-agent

    RHEL 6.x:

     
    sudo status amazon-ssm-agent
  5. 如果上一條命令返回“amazon-ssm-agent is stopped”,則執行以下命令。

    1. 啟動服務。

      RHEL 7.x:

       
      sudo systemctl enable amazon-ssm-agent
       
      sudo systemctl start amazon-ssm-agent

      RHEL 6.x:

       
      sudo start amazon-ssm-agent
    2. 檢查代理的狀態。

      RHEL 7.x:

       
      sudo systemctl status amazon-ssm-agent

      RHEL 6.x:

       
      sudo status amazon-ssm-agent

CentOS

連線到您的 CentOS 例項並執行下列步驟來安裝 SSM 代理。使用 Systems Manager 對每個將執行命令的例項執行這些步驟。

在 CentOS 上安裝 SSM 代理

  1. 在例項上建立臨時目錄。

     
    mkdir /tmp/ssm
  2. 更改為臨時目錄。

     
    cd /tmp/ssm
  3. 使用以下命令之一下載和執行 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
  4. 執行以下命令之一以確定 SSM 代理是否在執行。該命令應返回“amazon-ssm-agent is running”訊息。

    CentOS 7.x:

     
    sudo systemctl status amazon-ssm-agent

    CentOS 6.x:

     
    sudo status amazon-ssm-agent
  5. 如果上一條命令返回“amazon-ssm-agent is stopped”,則執行以下命令。

    1. 啟動服務。

      CentOS 7.x:

       
      sudo systemctl enable amazon-ssm-agent
       
      sudo systemctl start amazon-ssm-agent

      CentOS 6.x:

       
      sudo start amazon-ssm-agent
    2. 檢查代理的狀態。

      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 代理

  1. 在例項上建立臨時目錄。

     
    mkdir /tmp/ssm
  2. 更改為臨時目錄。

     
    cd /tmp/ssm
  3. 使用以下命令下載和執行 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
  4. 執行以下命令確定 SSM 代理是否在執行。該命令應返回“amazon-ssm-agent is running”訊息。

     
    sudo systemctl status amazon-ssm-agent
  5. 如果上一條命令返回“amazon-ssm-agent is stopped”訊息,則執行以下命令。

    1. 啟動服務。

       
      sudo systemctl enable amazon-ssm-agent
      sudo systemctl start amazon-ssm-agent
    2. 檢查代理的狀態。

       
      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 代理

  1. 在例項上建立臨時目錄。

     
    mkdir /tmp/ssm
  2. 使用以下命令下載和執行 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
  3. 執行以下命令安裝 SSM 代理:

     
    sudo dpkg -i /tmp/ssm/amazon-ssm-agent.deb
  4. 執行以下命令停止 SSM 代理。

     
    sudo service amazon-ssm-agent stop
  5. 執行以下命令,以使用您完成託管例項啟用過程時收到的託管例項啟用程式碼和 ID 註冊代理。

     
    sudo amazon-ssm-agent -register -code "code" -id "ID" -region "region"
  6. 執行以下命令啟動 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