本文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 代理安装
从通过使用 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