将软件包版本添加到 Distributor - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

将软件包版本添加到 Distributor

要添加软件包版本,您需要创建软件包,然后使用 Distributor 通过向旧版本已存在的 Amazon Systems Manager (SSM) 文档中添加条目来添加软件包版本。Distributor 是 Amazon Systems Manager 的一项功能。为了节省时间,可以更新旧版本包的清单,更改清单中 version 条目的值(例如,从 Test_1.0 更改为 Test_2.0),并将其保存为新版本的清单。Distributor 控制台中的简单 Add version (添加版本) 工作流将为您更新清单文件。

新的软件包版本可以:

  • 替换附加到当前版本的至少一个可安装文件。

  • 添加新的可安装文件以支持其他平台。

  • 删除文件以停止对特定平台的支持。

较新的版本可以使用相同的 Amazon Simple Storage Service (Amazon S3) 存储桶,但必须具有末尾显示不同文件名的 URL。您可以使用 Systems Manager 控制台或 Amazon Command Line Interface (Amazon CLI) 来添加新版本。将具有确切名称的可安装文件上载为 Amazon S3 存储桶中的现有可安装文件将覆盖现有文件。没有可安装的文件从旧版本复制到新版本;您必须从旧版本上传可安装文件才能使它们成为新版本的一部分。在 Distributor 完成创建新软件包版本后,您可以删除 Amazon S3 存储桶或调整其用途,因为 Distributor 在版本控制过程中会将软件复制到内部 Systems Manager 存储桶。

注意

每个软件包限制为最多 25 个版本。您可以删除不再需要的版本。

添加软件包版本(控制台)

在执行以下步骤前,请按照创建软件包中的说明执行操作,为此版本创建一个新的软件包。然后,使用 Systems Manager 控制台将新的软件包版本添加到 Distributor。

添加软件包版本(简单)

要使用 Simple (简单) 工作流程添加软件包版本,请准备更新的可安装文件或添加可安装文件,以支持更多平台和架构。然后,使用 Distributor 上传新的和更新的可安装文件并添加软件包版本。Distributor 控制台中的简化 Add version (添加版本) 工作流程将为您更新清单文件和关联的 SSM 文档。

添加软件包版本(简单)
  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon Systems Manager 控制台。

  2. 在导航窗格中,选择 Distributor

  3. 在 Distributor 主页上,选择要为其添加其他版本的软件包。

  4. Add version (添加版本) 页面上,选择 Simple (简单)

  5. 对于 Version name (版本名称),请输入版本名称。新版本的版本名称必须与旧版本名称不同。版本名称最多可以包含 512 个字符,并且不能包含特殊字符。

  6. 对于 S3 存储桶名称,从列表中选择现有的 S3 存储桶。这可以是用于存储旧版本的可安装文件的同一个存储桶,但可安装文件名必须不同,以避免覆盖存储桶中的现有可安装文件。

  7. 对于 S3 key prefix (S3 键前缀),请输入存储可安装资产的存储桶子文件夹。

  8. 对于 Upload software (上载软件),请导航到要附加到新版本的可安装软件文件。现有版本中的可安装文件不会自动复制到新版本;如果您希望任何相同的可安装文件成为新版本的一部分,则必须上载旧版软件包中的任何可安装文件。您可以在单个操作中上传多个软件文件。

  9. 对于目标平台,请验证为每个可安装文件显示的目标操作系统平台是否正确。如果显示的操作系统不正确,请从下拉列表中选择正确的操作系统。

    简单版本控制工作流程中,由于您只上传每个可安装文件一次,因此需要额外的步骤在多个操作系统上将单个文件指定为目标。例如,如果您上传名为 Logtool_v1.1.1.rpm 的可安装软件文件,则必须更改简单工作流程中的某些默认值,以指示 Distributor 同时在 Amazon Linux 和 Ubuntu 操作系统上将相同的软件指定为目标。您可以执行以下操作之一来解决此限制。

    • 改用高级版本控制工作流程,在开始之前将每个可安装文件压缩为 .zip 文件,然后手动编写清单,以便在多个操作系统平台或版本中将一个可安装文件指定为目标。有关更多信息,请参阅添加软件包版本(高级)

    • 简单工作流程中手动编辑清单文件,以便在多个操作系统平台或版本中将 .zip 文件指定为目标。有关如何执行此操作的更多信息,请参阅 步骤 2:创建 JSON 软件包清单 中步骤 4 的末尾。

  10. 对于 Platform version (平台版本),验证并确保所显示的操作系统平台版本是 _any(主要发行版本后跟一个通配符 (7.*)),或您希望软件适用于的确切操作系统发行版本。有关指定平台版本的更多信息,请参阅 步骤 2:创建 JSON 软件包清单 中的步骤 4。

  11. 对于架构,请从下拉列表中为每个可安装文件选择正确的处理器架构。有关支持的架构的更多信息,请参阅 支持的软件包平台和架构

  12. (可选)展开 Scripts (脚本),然后查看 Distributor 为可安装软件生成的安装和卸载脚本。

  13. 要向新版本添加更多可安装的软件文件,请选择 Add software (添加软件)。否则,转到下一步。

  14. (可选)展开清单,然后审核 Distributor 为您的可安装软件包生成的 JSON 清单。如果您在开始此过程后更改了有关可安装软件的任何信息(例如平台版本或目标平台),请选择生成清单以显示更新的软件包清单。

    如果要将可在多个操作系统上安装的软件指定为目标,则可以手动编辑清单,如步骤 9 中所述。有关编辑该清单的更多信息,请参阅 步骤 2:创建 JSON 软件包清单

  15. 完成添加软件和审核目标平台、版本和架构数据时,请选择 Add version (添加版本)

  16. 等待 Distributor 完成上传软件和创建新的软件包版本。Distributor 显示每个可安装文件的上传状态。根据要添加的软件包的数量和大小,这可能需要几分钟时间。Distributor 会自动将您重定向到软件包的 Package details (软件包详细信息) 页面,但您可以选择在上传软件之后自行打开此页面。Package details (软件包详细信息) 页面不会显示有关软件包的所有信息,直到 Distributor 完成创建新的软件包版本为止。要停止上传和软件包版本创建,请选择 Stop upload (停止上传)

  17. 如果 Distributor 无法上载任何软件可安装文件,它会显示 Upload failed (上载失败) 消息。要重试上传,请选择 Retry upload (重试上传)。有关如何排除软件包版本创建失败的更多信息,请参阅 排除 Amazon Systems ManagerDistributor 的故障

  18. 在 Distributor 完成创建新的软件包版本后,在软件包的 Details (详细信息) 页面的 Versions (版本) 选项卡上,在可用软件包版本列表中查看新版本。通过以下方式设置软件包的默认版本:选择一个版本,然后选择 Set default version (设置默认版本)

    如果不设置默认版本,则最新的软件包版本即为默认版本。

添加软件包版本(高级)

要添加软件包版本,您需要创建软件包,然后使用 Distributor 通过向旧版本存在的 SSM 文档中添加条目来添加软件包版本。为了节省时间,可以更新旧版本包的清单,更改清单中 version 条目的值(例如,从 Test_1.0 更改为 Test_2.0),并将其保存为新版本的清单。您必须具有更新的清单才能使用高级工作流程添加新的软件包版本。

添加软件包版本(高级)
  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon Systems Manager 控制台。

  2. 在导航窗格中,选择 Distributor

  3. 在 Distributor 主页上,选择要向其添加其他版本的软件包,然后选择 Add version (添加版本)

  4. 对于 Version name (版本名称),请输入位于清单文件的 version 条目中的确切值。

  5. 对于 S3 存储桶名称,从列表中选择现有的 S3 存储桶。这可以是用于存储旧版本的可安装文件的同一个存储桶,但可安装文件名必须不同,以避免覆盖存储桶中的现有可安装文件。

  6. 对于 S3 key prefix (S3 键前缀),请输入存储可安装资产的存储桶子文件夹。

  7. 对于 Manifest (清单),请选择 Extract from package (从软件包提取) 以使用随 .zip 文件上传到 S3 存储桶的清单。

    (可选)如果未将修订的 JSON 清单上载到存储 .zip 文件的 Amazon S3 存储桶,请选择 New manifest (新建清单)。您可以在 JSON 编辑器字段中编写或粘贴整个清单。有关如何创建 JSON 清单的更多信息,请参阅 步骤 2:创建 JSON 软件包清单

  8. 当您完成处理清单后,选择 Add package version (添加软件包版本)

  9. 在软件包的 Details (详细信息) 页面的 Versions (版本) 选项卡上,在可用软件包版本列表中查看新版本。通过以下方式设置软件包的默认版本:选择一个版本,然后选择 Set default version (设置默认版本)

    如果不设置默认版本,则最新的软件包版本即为默认版本。

添加软件包版本 (Amazon CLI)

您可以使用 Amazon CLI 将新的软件包版本添加到 Distributor。在运行以下命令前,必须创建新的软件包版本并将其上传到 S3,如本主题开头所述。

添加软件包版本 (Amazon CLI)
  1. 运行下面的命令并附上新软件包版本的条目来编辑 Amazon Systems Manager 文档。将 document-name 替换为您的文档的名称。将 DOC-EXAMPLE-BUCKET 替换为您在 步骤 3:将软件包和清单上载到 Amazon S3 存储桶 中复制的 JSON 清单的 URL。S3-bucket-URL-of-package 是存储整个软件包的 Amazon S3 存储桶的 URL。将 version-name-from-updated-manifest 替换为清单中 version 的值。将 --document-version 参数设置为 $LATEST,以使与此软件包版本关联的文档成为文档的最新版本。

    aws ssm update-document \ --name "document-name" \ --content "S3-bucket-URL-to-manifest-file" \ --attachments Key="SourceUrl",Values="DOC-EXAMPLE-BUCKET" \ --version-name version-name-from-updated-manifest \ --document-version $LATEST

    以下是示例。

    aws ssm update-document \ --name ExamplePackage \ --content "https://s3.amazonaws.com/DOC-EXAMPLE-BUCKET/ExamplePackage/manifest.json" \ --attachments Key="SourceUrl",Values="https://s3.amazonaws.com/DOC-EXAMPLE-BUCKET/ExamplePackage" \ --version-name 1.1.1 \ --document-version $LATEST
  2. 运行以下命令来验证软件包已更新并显示包清单。将 package-name 替换为您的软件包名称,(可选)将 document-version 替换为更新的文档的版本号(不同于软件包的版本)。如果此软件包版本与文档的最新版本关联,则可以为可选的 --document-version 参数的值指定 $LATEST

    aws ssm get-document \ --name "package-name" \ --document-version "document-version"

有关可以与 update-document 命令结合使用的其他选项的信息,请参阅 Amazon CLI 命令参考 Amazon Systems Manager 一节中的 update-document