AWS Systems Manager
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

在 Amazon EC2 Linux 实例上手动安装 SSM 代理

使用以下脚本之一在下列 Linux 实例上安装 SSM 代理。

使用以下脚本中的 URL 可从任意 AWS 区域下载 SSM 代理。如果您要从特定区域下载代理,请参阅从特定区域下载 SSM 代理

手动安装 SSM 代理后,在新版本可用时,您可以使用 Systems Manager 状态管理器 在您的实例上自动更新 SSM 代理。有关更多信息,请参阅 演练:自动更新 SSM 代理 (CLI)

Amazon Linux 和 Amazon Linux 2

连接到您的 Amazon Linux 或 Amazon Linux 2 实例并执行下列步骤来安装 SSM 代理。使用 Systems Manager 对每个将运行命令的实例执行这些步骤。

重要

  • 在 2017.09 及以后日期版本的 Amazon Linux 基本 AMI 上,默认情况下会安装 SSM 代理。默认情况下,Amazon Linux 2 AMI 上也会安装 SSM 代理。

  • 对于其他版本的 Linux (包括经 Amazon ECS 优化的 AMI 等非基本映像),您必须手动安装 SSM 代理。

  • 从 Amazon Linux AMI 创建的使用代理的实例必须运行 Python requests 模块的当前版本,才能支持 Patch Manager 操作。有关更多信息,请参阅 在使用代理服务器的 Amazon Linux 实例上升级 Python 请求模块

在 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.amazonaws.cn/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 stoppedinactivedisabled,则运行以下命令将启动服务。

    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.120180522)的 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 stoppedinactivedisabled,则运行以下命令将启动服务。

    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 stoppedinactivedisabled,则运行以下命令。

    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