在 Ubuntu Server 实例上手动安装 SSM 代理 - Amazon Web Services Systems Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Ubuntu Server 实例上手动安装 SSM 代理

Connect 到您的 Ubuntu Server 实例并执行下列步骤可安装Amazon Web Services Systems Manager代理(SSM 代理)。使用 Systems Manager 对每个将运行命令的实例执行这些步骤。

关于 64 位 Ubuntu 服务器 16.04 实例上的 SSM 代理安装

从 Ubuntu Server 16.04Amazon Machine Images(AMIs)标识为20180627,SSM 代理已使用快照软件包预安装。例如:ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-20180627。 在从早期创建的实例上AMIs,您应继续使用 deb 安装软件包。

对于从 64 位 Ubuntu Server 16.04AMI,请确保遵循 SSM 代理安装类型的正确过程:

重要

请注意,如果实例上已安装多个 SSM 代理(例如,一个 SSM Agent 是使用 Snap 安装的,一个 &SSM Agent 是使用 deb 安装程序安装的),则代理操作将无法正常工作。

您可以验证源AMI使用以下任一方法实例的 ID 创建日期。这些过程仅适用于Amazon托管AMIs。

验证源AMIID 创建日期(控制台)

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在左侧导航窗格中,选择 Instances (实例)

  3. 选择一个实例。

  4. 在存储库的说明选项卡上,检查YYYYMMDD标识符中的值AMIID字段。例如:ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-20180627

验证源AMIID 创建日期 (AmazonCLI)

  • 运行以下命令。

    aws ec2 describe-images --image-id ami-id

    ami-id表示 IDAMIProtos (提供者Amazon之外的压缩算法(例如ami-07c8bc5c1ce9598c3

    如果成功,命令将返回类似以下内容的信息,您可以在其中检查CreationDateName字段以获取信息。

    {
        "Images": [
            {
                "Architecture": "x86_64",
                "CreationDate": "2020-07-24T20:40:27.000Z",
                "ImageId": "ami-07c8bc5c1ce9598c3",
    -- truncated --
                "ImageOwnerAlias": "amazon",
                "Name": "amzn2-ami-hvm-2.0.20200722.0-x86_64-gp2",
                "RootDeviceName": "/dev/xvda",
                "RootDeviceType": "ebs",
                "SriovNetSupport": "simple",
                "VirtualizationType": "hvm"
            }
        ]
    }

在 Ubuntu Server 实例上安装 SSM 代理

Ubuntu Server 20.10 STR & 20.04, 18.04, and 16.04 LTS 64-bit (Snap)

在 Ubuntu 服务器 20.10 STR 和 20.04、18.04 和 16.04 LTS 64 位实例(带 Snap 程序包)上安装 SSM 代理

  1. 默认情况下,Ubuntu Server 20.04、18.04 和 16.04 LTS 64 位上安装了 SSM 代理AMIs标识符为20180627或更高版本.

    如果需要在本地服务器上安装 SSM 代理或者需要重新安装代理,您可以使用以下脚本。您无需为下载指定 URL,因为 snap 命令会自动从 Snap 应用商店 https://snapcraft.io 下载代理。

    sudo snap install amazon-ssm-agent --classic
    重要

    这些区域有:候选项通道包含最新版本的 SSM Agent(包括所有最新的错误修复);而不是稳定通道。要了解有关候选通道与稳定通道之间的差异的详细信息,请参阅风险级别athttps://snapcraft.io/docs/channels

    如果要跟踪候选通道上的 SSM 代理版本信息,请在 Ubuntu 服务器 20.10 STR 和 20.04、18.04 和 16.04 LTS 64 位实例上运行以下命令。

    sudo snap switch --channel=candidate amazon-ssm-agent
    注意

    请注意以下详细信息有关 Ubuntu 服务器 20.10 STR 和 20.04、18.04 和 16.04 LTS 上的 SSM 代理:

    • 由于 Snap 的已知问题,使用 snap 命令时您可能会看到 Maximum timeout exceeded 错误。如果您收到此错误,请运行以下命令(一次运行一条命令)来启动代理、停止它并检查其状态:

      sudo systemctl start snap.amazon-ssm-agent.amazon-ssm-agent.service
      sudo systemctl stop snap.amazon-ssm-agent.amazon-ssm-agent.service
      sudo systemctl status snap.amazon-ssm-agent.amazon-ssm-agent.service
    • 在 Ubuntu 服务器 20.10 STR 和 20.04、18.04 和 16.04 LTS 上,SSM 代理安装程序文件(包括代理二进制文件和配置文件)存储在以下目录中:/snap/amazon-ssm-agent/current/。 如果您更改此目录中的任何配置文件,则必须将这些文件从/snap文件夹到/etc/amazon/ssm/folder。日志和库文件未更改(/var/lib/amazon/ssm/var/log/amazon/ssm)。

    • 在 Ubuntu 服务器 20.10 STR 和 20.04 和 18.04 LTS 上,我们建议您只使用快照。另外请确保实例上只安装并运行了代理的一个实例。如果要在没有快照的情况下使用 SSM 代理,请卸载 SSM 代理。然后将 SSM 代理安装为 Debian 软件包,并确保您没有安装任何与想要作为 Debian 软件包管理的软件包列表重叠的快照。

    • 在 Ubuntu 服务器 20.10 STR 和 20.04、18.04 和 16.04 LTS 上,SSM 代理提供对 arm64 处理器体系结构的支持。

    • 在 Ubuntu 服务器 16.04 上,SSM 代理使用 Snap 或 deb 安装程序包安装 SSM 代理,具体取决于 16.04 的版本。AMI。

  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
Ubuntu Server 16.04 and 14.04 64-bit (deb)

在 Ubuntu 服务器 16.04 和 14.04 64 位实例(带 deb 安装程序包)上安装 SSM 代理

  1. 如果需要在本地服务器上安装 SSM 代理或者需要重新安装代理,您可以使用以下脚本。

    重要

    默认情况下,SSM 代理安装到从 Ubuntu 服务器 16.04 LTS 64 位创建的实例上AMIs标识符为20180627或更高版本. 创建的实例AMIs与早期的标识符,例如20171121.120180522,应继续使用 deb 安装程序。

    如果 SSM 代理与 Snap 一起安装到实例上,并且您使用 deb 安装程序包安装或更新 SSM 代理,则安装或 SSM 代理操作可能失败。

    在实例上创建临时目录。

    mkdir /tmp/ssm

    更改为临时目录。

    cd /tmp/ssm

    运行以下命令。

    区域表示Amazon Web Services 区域支持Amazon Web Services Systems Manager之外的压缩算法(例如us-east-2对于美国东部 (俄亥俄) 区域,请指定。有关受支持的列表区域值,请参阅区域column 中Systems Manager 服务终端节点中的Amazon Web Services 一般参考

    wget https://s3.cn-north-1.amazonaws.com.cn/amazon-ssm-cn-north-1/latest/debian_amd64/amazon-ssm-agent.deb
    sudo dpkg -i amazon-ssm-agent.deb
  2. 运行以下命令之一以确定 SSM 代理是否在运行。

    Ubuntu Server 16.04:

    sudo systemctl status amazon-ssm-agent

    Ubuntu Server 14.04:

    sudo status amazon-ssm-agent
  3. 如果上一条命令返回 amazon-ssm-agent is stoppedinactivedisabled,则运行以下命令之一将启动服务。

    Ubuntu Server 16.04:

    sudo systemctl enable amazon-ssm-agent

    Ubuntu Server 14.04:

    sudo start amazon-ssm-agent
  4. 运行以下命令之一以检查代理状态。

    Ubuntu Server 16.04:

    sudo systemctl status amazon-ssm-agent

    Ubuntu Server 14.04:

    sudo status amazon-ssm-agent
Ubuntu Server 16.04 and 14.04 32-bit

在 Ubuntu 服务器 16.04 和 14.04 32 位实例上安装 SSM 代理

  1. 在实例上创建临时目录。

    mkdir /tmp/ssm

    更改为临时目录。

    cd /tmp/ssm

    运行以下命令。

    区域表示Amazon Web Services 区域支持Amazon Web Services Systems Manager之外的压缩算法(例如us-east-2对于美国东部 (俄亥俄) 区域,请指定。有关受支持的列表区域值,请参阅区域column 中Systems Manager 服务终端节点中的Amazon Web Services 一般参考

    wget https://s3.cn-north-1.amazonaws.com.cn/amazon-ssm-cn-north-1/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
注意

如果您无法从Amazon Web Services 区域,请使用下面的其中一个全局 URL。虽然以下 URL 显示的是 “ec2-downloads-windows”,但这些是 Linux 操作系统的正确 URL。

  • Intel 64-bit (x86_64)

    https://s3.cn-north-1.amazonaws.com.cn/amazon-ssm-cn-north-1/latest/linux_amd64/amazon-ssm-agent.rpm
  • Intel 32-bit (x86)

    https://s3.cn-north-1.amazonaws.com.cn/amazon-ssm-cn-north-1/latest/linux_386/amazon-ssm-agent.rpm
重要

每次在 Systems Manager 中添加新功能或更新现有功能时,将发布更新版本的 SSM 代理。如果较早版本的代理在实例上运行,有些 SSM 代理过程会失败。因此,我们建议您自动完成确保 SSM 代理上的为实例上的为最新的过程。有关信息,请参阅 自动更新 SSM 代理。订阅SSM 代理发布说明页面以获取有关 SSM 代理更新的通知。