从控制台运行命令 - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

从控制台运行命令

在不必登录的情况下,您可以使用来自 Amazon Web Services Management Console 的 Run Command(Amazon Systems Manager 的一项功能)配置托管式节点。此主题包括演示如何使用 Run Command 在托管式节点上更新 SSM Agent 的示例。

开始前的准备工作

在使用 Run Command 发送命令之前,请确认托管式节点符合 Systems Manager 要求

使用 Run Command 发送命令

  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon Systems Manager 控制台。

  2. 在导航窗格中,选择 Run Command

    -或者-

    如果首先打开 Amazon Systems Manager 主页,选择菜单图标 ( ) 以打开导航窗格,然后选择 Run Command

  3. 选择 Run command (运行命令)

  4. 命令文档列表中,请选择 Systems Manager 文档。

  5. Command parameters (命令参数) 部分中,为必需的参数指定值。

  6. Targets(目标)部分中,通过指定标签、手动选择实例或边缘设备或指定资源组,选择要在其上运行此操作的托管式节点。

    注意

    如果未列出您希望看到的托管式节点,请参阅 排除托管式节点可用性的问题 以获取故障排除技巧。

  7. 对于 Other parameters (其他参数)

    • 对于 Comment (注释),请输入有关此命令的信息。

    • 对于 Timeout (seconds) (超时 (秒)),请指定在整个命令执行失败之前系统等待的秒数。

  8. 对于 Rate control (速率控制)

    • 对于 Concurrency(并发),请指定要同时运行该命令的托管式节点的数量或百分比。

      注意

      如果您通过指定应用于托管式节点的标签或指定 Amazon Resource Groups 来选择目标,但不确定有多少个托管式节点已被设为目标,则可通过指定百分比来限制可同时运行该文档的目标的数量。

    • 对于 Error threshold(错误阈值),请指定当命令在一定数量或百分比的节点上失败后,何时在其他托管式节点上停止运行该命令。例如,如果您指定三个错误,Systems Manager 将在收到第四个错误时停止发送该命令。仍在处理该命令的托管式节点也可能发送错误。

  9. (可选)对于 输出选项,要将命令输出保存到文件,请选中 将命令输出写入 S3 存储桶 框。在输入框中输入存储桶和前缀(文件夹)名称。

    注意

    授予将数据写入 S3 存储桶的能力的 S3 权限,是分配给实例的实例配置文件(适用于 EC2 实例)或 IAM 服务角色(本地计算机)的权限,而不是执行此任务的 IAM 用户的权限。有关更多信息,请参阅为 Systems Manager 创建 IAM 实例配置文件为混合环境创建 IAM 服务角色。此外,如果指定的 S3 存储桶位于不同的 Amazon Web Services 账户 中,请确保与该托管式节点关联的实例配置文件或 IAM 服务角色具有写入该存储桶的所需权限。

  10. SNS 通知部分,如果需要发送有关命令执行状态的通知,请选中 Enable SNS notifications (启用 SNS 通知)复选框。

    有关为 Run Command 配置 Amazon SNS 通知的更多信息,请参阅使用 Amazon SNS 通知监控 Systems Manager 状态更改

  11. 选择 Run(运行)。

有关取消命令的信息,请参阅 取消命令

重新运行命令

Systems Manager 包含两个选项,可帮助您从 Systems Manager 控制台中的 Run Command 页面重新运行命令。

  • Rerun (重新运行):利用此按钮,您可以运行同一个命令而不对其进行更改。

  • 复制到新项目:此按钮将一个命令的设置复制到一个新命令,并为您提供在运行该命令之前编辑这些设置的选项。

重新运行命令

  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon Systems Manager 控制台。

  2. 在导航窗格中,选择 Run Command

    -或者-

    如果首先打开 Amazon Systems Manager 主页,选择菜单图标 ( ) 以打开导航窗格,然后选择 Run Command

  3. 选择要重新运行的命令。从命令详细信息页面执行命令后,可以立即重新运行此命令。或者,您可以从 Command history (命令历史记录) 选项卡中选择先前运行的命令。

  4. 选择 Rerun (重新运行) 以在不进行更改的情况下运行相同的命令,或者选择复制到新项目以在运行命令之前编辑命令设置。

使用 SSM Agent 更新 Run Command

以下过程介绍如何更新在托管式节点上运行的 SSM Agent。您可以更新到最新版本的 SSM Agent 或降级到较旧版本。在运行命令时,系统将从 Amazon 下载并安装需要的版本,然后卸载运行命令前存在的版本。如果此过程中出现错误,系统将回滚到命令运行之前服务器上的版本,并且命令状态将显示命令失败。

要获得有关 SSM Agent 更新的通知,请在 GitHub 上订阅 SSM Agent 发布说明页面。

使用 Run Command 更新 SSM Agent

  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon Systems Manager 控制台。

  2. 在导航窗格中,选择 Run Command

    -或者-

    如果首先打开 Amazon Systems Manager 主页,选择菜单图标 ( ) 以打开导航窗格,然后选择 Run Command

  3. 选择 Run command (运行命令)

  4. Command document (命令文档) 列表中,请选择 AWS-UpdateSSMAgent

  5. 命令参数部分中,根据需要为以下参数指定值:

    1. (可选)对于 Version (版本),输入要安装的 SSM Agent 的版本。您可以安装代理的较旧版本。如果您不指定版本,则服务将安装最新版本。

    2. (可选)对于 Allow Downgrade (允许降级),选择 true (真) 以安装 SSM Agent的早期版本。如果选择此选项,需要指定较早的版本号。选择 false 以仅安装此服务的最新版本。

  6. Targets(目标)部分中,通过指定标签、手动选择实例或边缘设备或指定资源组,选择要在其上运行此操作的托管式节点。

    注意

    如果未列出您希望看到的托管式节点,请参阅 排除托管式节点可用性的问题 以获取故障排除技巧。

  7. 对于 Other parameters (其他参数)

    • 对于 Comment (注释),请输入有关此命令的信息。

    • 对于 Timeout (seconds) (超时 (秒)),请指定在整个命令执行失败之前系统等待的秒数。

  8. 对于 Rate control (速率控制)

    • 对于 Concurrency(并发),请指定要同时运行该命令的托管式节点的数量或百分比。

      注意

      如果您通过指定应用于托管式节点的标签或指定 Amazon Resource Groups 来选择目标,但不确定有多少个托管式节点已被设为目标,则可通过指定百分比来限制可同时运行该文档的目标的数量。

    • 对于 Error threshold(错误阈值),请指定当命令在一定数量或百分比的节点上失败后,何时在其他托管式节点上停止运行该命令。例如,如果您指定三个错误,Systems Manager 将在收到第四个错误时停止发送该命令。仍在处理该命令的托管式节点也可能发送错误。

  9. (可选)对于 输出选项,要将命令输出保存到文件,请选中 将命令输出写入 S3 存储桶 框。在输入框中输入存储桶和前缀(文件夹)名称。

    注意

    授予将数据写入 S3 存储桶的能力的 S3 权限,是分配给实例的实例配置文件(适用于 EC2 实例)或 IAM 服务角色(本地计算机)的权限,而不是执行此任务的 IAM 用户的权限。有关更多信息,请参阅为 Systems Manager 创建 IAM 实例配置文件为混合环境创建 IAM 服务角色。此外,如果指定的 S3 存储桶位于不同的 Amazon Web Services 账户 中,请确保与该托管式节点关联的实例配置文件或 IAM 服务角色具有写入该存储桶的所需权限。

  10. SNS 通知部分,如果需要发送有关命令执行状态的通知,请选中 Enable SNS notifications (启用 SNS 通知)复选框。

    有关为 Run Command 配置 Amazon SNS 通知的更多信息,请参阅使用 Amazon SNS 通知监控 Systems Manager 状态更改

  11. 选择 Run(运行)。

使用 Run Command 更新 PowerShell

以下过程介绍如何在 Windows Server 2012 和 2012 R2 托管式节点上将 PowerShell 更新到版本 5.1。此过程中提供的脚本将下载 Windows 管理框架 (WMF) 5.1 版更新,并开始安装此更新。在此过程中,节点会重启,因为在安装 WMF 5.1 时要求这么做。完成下载和安装更新大约需要 5 分钟。

要使用 Run Command 更新 PowerShell,请执行以下步骤:

  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon Systems Manager 控制台。

  2. 在导航窗格中,选择 Run Command

    -或者-

    如果首先打开 Amazon Systems Manager 主页,选择菜单图标 ( ) 以打开导航窗格,然后选择 Run Command

  3. 选择 Run command (运行命令)

  4. Command document (命令文档) 列表中,请选择 AWS-RunPowerShellScript

  5. Commands (命令) 部分中,粘贴以下适用于您的操作系统的命令。

    Windows Server 2012 R2
    Set-Location -Path "C:\Windows\Temp" Invoke-WebRequest "https://go.microsoft.com/fwlink/?linkid=839516" -OutFile "Win8.1AndW2K12R2-KB3191564-x64.msu" Start-Process -FilePath "$env:systemroot\system32\wusa.exe" -Verb RunAs -ArgumentList ('Win8.1AndW2K12R2-KB3191564-x64.msu', '/quiet')
    Windows Server 2012
    Set-Location -Path "C:\Windows\Temp" Invoke-WebRequest "https://go.microsoft.com/fwlink/?linkid=839513" -OutFile "W2K12-KB3191565-x64.msu" Start-Process -FilePath "$env:systemroot\system32\wusa.exe" -Verb RunAs -ArgumentList ('W2K12-KB3191565-x64.msu', '/quiet')
  6. Targets(目标)部分中,通过指定标签、手动选择实例或边缘设备或指定资源组,选择要在其上运行此操作的托管式节点。

    注意

    如果未列出您希望看到的托管式节点,请参阅 排除托管式节点可用性的问题 以获取故障排除技巧。

  7. 对于 Other parameters (其他参数)

    • 对于 Comment (注释),请输入有关此命令的信息。

    • 对于 Timeout (seconds) (超时 (秒)),请指定在整个命令执行失败之前系统等待的秒数。

  8. 对于 Rate control (速率控制)

    • 对于 Concurrency(并发),请指定要同时运行该命令的托管式节点的数量或百分比。

      注意

      如果您通过指定应用于托管式节点的标签或指定 Amazon Resource Groups 来选择目标,但不确定有多少个托管式节点已被设为目标,则可通过指定百分比来限制可同时运行该文档的目标的数量。

    • 对于 Error threshold(错误阈值),请指定当命令在一定数量或百分比的节点上失败后,何时在其他托管式节点上停止运行该命令。例如,如果您指定三个错误,Systems Manager 将在收到第四个错误时停止发送该命令。仍在处理该命令的托管式节点也可能发送错误。

  9. (可选)对于 输出选项,要将命令输出保存到文件,请选中 将命令输出写入 S3 存储桶 框。在输入框中输入存储桶和前缀(文件夹)名称。

    注意

    授予将数据写入 S3 存储桶的能力的 S3 权限,是分配给实例的实例配置文件(适用于 EC2 实例)或 IAM 服务角色(本地计算机)的权限,而不是执行此任务的 IAM 用户的权限。有关更多信息,请参阅为 Systems Manager 创建 IAM 实例配置文件为混合环境创建 IAM 服务角色。此外,如果指定的 S3 存储桶位于不同的 Amazon Web Services 账户 中,请确保与该托管式节点关联的实例配置文件或 IAM 服务角色具有写入该存储桶的所需权限。

  10. SNS 通知部分,如果需要发送有关命令执行状态的通知,请选中 Enable SNS notifications (启用 SNS 通知)复选框。

    有关为 Run Command 配置 Amazon SNS 通知的更多信息,请参阅使用 Amazon SNS 通知监控 Systems Manager 状态更改

  11. 选择 Run(运行)。

在托管式节点重启且更新安装完成后,连接到您的节点以确认 PowerShell 已成功升级到版本 5.1。要检查您的节点上的 PowerShell 版本,打开 PowerShell 并输入 $PSVersionTable。如果升级成功,输出表中的 PSVersion 值将显示为 5.1。

如果 PSVersion 值不是 5.1(例如 3.0 或 4.0),请在事件查看器中查看 Windows Logs (Windows 日志) 下的 Setup (设置) 日志。这些日志说明了更新安装失败的原因。