配置 SSM Agent 以在 Linux 节点上使用代理
可通过创建覆盖配置文件并向其添加 http_proxy
、https_proxy
和 no_proxy
设置将 AWS Systems Manager Agent (SSM Agent) 配置为通过 HTTP 代理进行通信。如果您安装 SSM Agent的较新或较早版本,覆盖文件还会保留代理设置。本节包含用于在 upstart 和 systemd 环境创建覆盖文件的过程。请注意,如果打算使用 Session Manager,HTTPS 代理服务器不受支持。
配置 SSM Agent以使用代理 (upstart)
请按照以下过程为 upstart
环境创建覆盖配置文件。
将 SSM Agent 配置为使用代理 (upstart)
-
连接到已安装 SSM Agent 的托管实例。
-
打开 VIM 等简单编辑器,然后根据您正在使用的是 HTTP 还是 HTTPS 代理服务器,添加以下配置之一。
对于 HTTP 代理服务器:
env http_proxy=http://
hostname
:port
env https_proxy=http://hostname
:port
env no_proxy=IP address for instance metadata services (IMDS)
对于 HTTPS 代理服务器:
env http_proxy=http://
hostname
:port
env https_proxy=https://hostname
:port
env no_proxy=IP address for instance metadata services (IMDS)
重要
将
no_proxy
设置添加至文件,然后指定 IP 地址。no_proxy
的 IP 地址是 Systems Manager 的实例元数据服务(IMDS)端点。如果您未指定no_proxy
,则对 Systems Manager 的调用将使用代理服务的身份(如果已启用 IMDSv1 回退),或者对 Systems Manager 的调用失败(如果强制执行 IMDSv2)。-
对于 IPv4,请指定
no_proxy=169.254.169.254
。 -
对于 IPv6,请指定
no_proxy=[fd00:ec2::254]
。实例元数据服务的 IPv6 地址与 IMDSv2 命令兼容。IPv6 地址只能在基于 AWS Nitro System 构建的实例上访问。有关更多信息,请参阅《Amazon EC2 用户指南》中的实例元数据服务版本 2 的工作原理。
-
-
使用名称
amazon-ssm-agent.override
将文件保存在以下位置:/etc/init/
-
使用以下命令停止和重新启动 SSM Agent。
sudo service stop amazon-ssm-agent sudo service start amazon-ssm-agent
注意
有关在 Upstart 环境中使用 .override
文件的更多信息,请参阅 init: Upstart init daemon job configuration
配置 SSM Agent以使用代理 (systemd)
使用以下过程将 SSM Agent 配置为在 systemd
环境中使用代理。
注意
此过程中的某些步骤包含适用于 Ubuntu Server 实例(使用 Snap 安装 SSM Agent)的明确说明。
-
连接到已安装 SSM Agent的实例。
-
根据操作系统类型,运行以下命令之一。
-
在已使用 Snap 安装 SSM Agent 的 Ubuntu Server 实例上:
sudo systemctl edit snap.amazon-ssm-agent.amazon-ssm-agent
在其他操作系统上:
sudo systemctl edit amazon-ssm-agent
-
-
打开 VIM 等简单编辑器,然后根据您正在使用的是 HTTP 还是 HTTPS 代理服务器,添加以下配置之一。
务必在显示“
### Lines below this comment will be discarded
”的注释上方输入信息,如下图所示。对于 HTTP 代理服务器:
[Service] Environment="http_proxy=http://
hostname
:port
" Environment="https_proxy=http://hostname
:port
" Environment="no_proxy=IP address for instance metadata services (IMDS)
"对于 HTTPS 代理服务器:
[Service] Environment="http_proxy=http://
hostname
:port
" Environment="https_proxy=https://hostname
:port
" Environment="no_proxy=IP address for instance metadata services (IMDS)
"重要
将
no_proxy
设置添加至文件,然后指定 IP 地址。no_proxy
的 IP 地址是 Systems Manager 的实例元数据服务(IMDS)端点。如果您未指定no_proxy
,则对 Systems Manager 的调用将使用代理服务的身份(如果已启用 IMDSv1 回退),或者对 Systems Manager 的调用失败(如果强制执行 IMDSv2)。-
对于 IPv4,请指定
no_proxy=169.254.169.254
。 -
对于 IPv6,请指定
no_proxy=[fd00:ec2::254]
。实例元数据服务的 IPv6 地址与 IMDSv2 命令兼容。IPv6 地址只能在基于 AWS Nitro System 构建的实例上访问。有关更多信息,请参阅《Amazon EC2 用户指南》中的实例元数据服务版本 2 的工作原理。
-
-
保存您的更改。系统将根据操作系统类型自动创建下列文件之一。
-
在已使用 Snap 安装 SSM Agent 的 Ubuntu Server 实例上:
/etc/systemd/system/snap.amazon-ssm-agent.amazon-ssm-agent.service.d/override.conf
-
在 Amazon Linux 2 和 Amazon Linux 2023 实例上:
/etc/systemd/system/amazon-ssm-agent.service.d/override.conf
-
在其他操作系统上:
/etc/systemd/system/amazon-ssm-agent.service.d/amazon-ssm-agent.override
-
-
通过使用以下命令之一重新启动 SSM Agent,具体取决于操作系统类型。
-
在已使用 Snap 安装的 Ubuntu Server 实例上:
sudo systemctl daemon-reload && sudo systemctl restart snap.amazon-ssm-agent.amazon-ssm-agent
-
在其他操作系统上:
sudo systemctl daemon-reload && sudo systemctl restart amazon-ssm-agent
-
注意
有关在 systemd 环境中使用 .override
文件的详细信息,请参阅 Red Hat Enterprise Linux 7 系统管理员指南中的修改现有单元文件