使用 Image Builder 导入和导出虚拟机映像 - EC2Image Builder

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

使用 Image Builder 导入和导出虚拟机映像

当您从虚拟化环境中导出 VM 时,该过程会创建一个或多个磁盘容器文件,这些文件充当 VM 环境、设置和数据的快照。您可以使用这些文件导入 VM,并将其用作映像配方的基础映像。

对于 VM 磁盘容器,Image Builder 支持以下文件格式:

  • 打开虚拟化存档 (OVA)

  • 虚拟机磁盘 (VMDK)

  • 虚拟硬盘 (VHD/VHDX)

  • 原始

导入使用磁盘创建 Amazon 系统映像 (AMI) 和 Image Builder 映像资源,这两个资源都可以用作自定义映像配方的基础映像。VM 磁盘必须存储在 S3 存储桶中才能导入。或者,您可以从现有EBS快照导入。

在 Image Builder 控制台中,您可以直接导入图像,然后使用输出图像或AMI在配方中使用,也可以在创建配方或配方版本时指定导入参数。有关作为映像配方的一部分进行导入的更多信息,请参阅 虚拟机导入配置

将虚拟机导入 Image Builder

Image Builder 与 Amazon EC2 VM 导入/导出集成,API使导入过程能够在后台异步运行。Image Builder 会引用虚拟机导入中的任务 ID 来跟踪其进度,并创建一个 Image Builder 映像资源作为输出。这允许您在虚拟机导入完成之前在配方中引用 Image Builder 映像资源。

Console

要使用 Image Builder 控制台导入虚拟机,请执行以下步骤:

  1. 打开 EC2 Image Builder 控制台,网址为https://console.aws.amazon.com/imagebuilder/

  2. 从导航窗格中,选择映像

  3. 选择导入映像

  4. 在 “导入图片” 页面上提供以下各部分的详细信息。完成操作后,选择导入映像

常规
  1. 为基本映像指定一个唯一的名称

  2. 指定基本映像的版本。采用以下格式:major.minor.patch

  3. 您也可以为基本映像输入可选的描述

基本映像操作系统
  1. 选择与您的虚拟机操作系统平台匹配的映像操作系统 (OS) 选项。

  2. 从列表中选择与您的虚拟机版本相匹配的操作系统版本

虚拟机导入配置
  1. 当您从虚拟化环境中导出虚拟机时,该过程会创建一个或多个磁盘容器文件。这些文件充当虚拟机环境、设置和数据的快照。您可以使用这些文件导入虚拟机作为映像配方的基本映像。有关VMs在 Image Builder 中导入的更多信息,请参阅导入和导出 VM 映像

    要指定导入源的位置,请执行以下步骤:

     

    导入源

    磁盘容器 1 部分中指定要导入的第一个虚拟机映像磁盘容器或快照的来源。

    1. 来源 — 可以是 S3 存储桶,也可以是EBS快照。

    2. 选择磁盘的 S3 位置 – 输入 Amazon S3 中存储磁盘映像的位置。要浏览位置,请选择浏览 S3

    3. 要添加磁盘容器,请选择添加磁盘容器

     

  2. IAM角色

    要将IAM角色与您的虚拟机导入配置相关联,请从IAM角色下拉列表中选择该角色,或者选择创建新角色来创建新角色。如果您创建了新角色,则IAM角色控制台页面将在单独的选项卡中打开。

     

  3. 高级设置 – 可选

    以下设置可选:使用这些设置,您可以为导入创建的基本映像配置加密、许可、标签等。

    基本映像架构

    要指定虚拟机导入源的架构,请从架构列表中选择一个值。

    加密

    如果您的虚拟机磁盘映像已加密,则必须提供用于导入过程的密钥。要为导入指定KMS密钥,请从加密(KMS密钥)列表中选择一个值。该列表包含您的账户在当前地区有权访问的KMS密钥。

    许可证管理

    导入虚拟机时,导入过程会自动检测虚拟机操作系统并将相应的许可证应用于基本映像。根据您的操作系统平台,许可证类型如下:

    • 包含许可证 — 适用于您的平台的相应 AWS 许可证将应用于您的基本映像。

    • 自带许可证 (BYOL)-保留虚拟机的许可证(如果适用)。

    要将使用创建的许可证配置附加 AWS License Manager 到您的基础映像,请从许可证配置名称列表中进行选择。有关 License Manager 的更多信息,请参阅使用 AWS License Manager

    注意
    • 许可证配置包含基于您的企业协议条款的许可规则。

    • Linux 仅支持BYOL许可证。

    标签(基本映像)

    标签使用键值对为您的 Image Builder 资源分配可搜索的文本。要为导入的基本映像指定标签,请使用框输入键值对。

    要添加标签,请选择 Add tag(添加标签)。要删除标签,请选择 Remove tag(删除标签)。

AWS CLI

要将虚拟机从磁盘导入AMI并创建可以立即引用的 Image Builder 映像资源,请执行以下步骤 AWS CLI:

  1. 使用中的 Amazon 虚拟机导入/导出import-image命令启动EC2虚拟机导入。 AWS CLI记下命令响应中返回的任务 ID。下一步中您将需要使用该值。有关更多信息,请参阅 VM Import/Export 用户指南 中的使用 VM Import/Export 将虚拟机作为映像导入

     

  2. 创建CLI输入JSON文件

    为了简化中使用的 Image Builder import-vm-image 命令 AWS CLI,我们创建了一个JSON文件,其中包含我们要传递到命令中的所有导入配置。

    注意

    JSON文件中数据值的命名约定遵循为 Image Builder API 操作请求参数指定的模式。要查看API命令请求参数,请参阅 Im EC2age Builder API 参考中的ImportVmImage命令。

    要将数据值作为命令行参数提供,请参阅AWS CLI 命令参考中指定的参数名。将 Image Builder import-vm-image 命令作为选项。

    以下是我们在此示例中指定的参数的摘要:

    • 名称(字符串,必填)— 要从导入中作为输出而创建的 Image Builder 映像资源的名称。

    • semanticVersion<major>(字符串,必填)—输出图像的语义版本,它按以下格式指定版本,每个位置都有数值来表示特定版本:。 <minor>。 <patch>。例如,1.0.0。要了解有关 Image Builder 资源的语义版本控制的更多信息,请参阅 Image Builder 中的语义版本控制

    • 描述(字符串)— 映像配方的描述。

    • 平台(字符串,必填)— 导入的 VM 的操作系统平台。

    • vmImportTaskID(字符串,必填)— Amazon EC2 虚拟机导入过程中的 ImportTaskId (AWS CLI)。Image Builder 监视导入过程AMI,以提取其创建的图像生成器图像资源,然后立即生成可用于配方的 Image Builder 图像资源。

    • clientToken(字符串,必填)— 您为确保请求的等效性而提供的区分大小写的唯一标识符。有关更多信息,请参阅 Amazon 参考中的确保等性。EC2 API

    • 标签(字符串映射)— 标签是附加到导入资源的键值对。最多允许 50 个键值对。

    将文件另存为 import-vm-image.json,以便在 Image Builder import-vm-image 命令中使用。

    { "name": "example-request", "semanticVersion": "1.0.0", "description": "vm-import-test", "platform": "Linux", "vmImportTaskId": "import-ami-01ab234567890cd1e", "clientToken": "asz1231231234cs3z", "tags": { "Usage": "VMIE" } }
  3. 导入映像

    使用您创建的文件作为输入并运行 import-vm-image 命令:

    aws imagebuilder import-vm-image --cli-input-json file://import-vm-image.json
    注意
    • 您必须在JSON文件路径的开头添加file://符号。

    • 该JSON文件的路径应遵循运行该命令的基本操作系统的相应约定。例如,Windows 使用反斜杠 (\) 引用目录路径,Linux 则使用正斜杠 (/)。

从您的映像版本中分发虚拟机磁盘 AWS CLI

在常规映像构建过程中,您可以使用 AWS CLI中的 Image Builder 分配配置,设置将支持的 VM 磁盘格式文件分配到目标区域的 S3 存储桶。有关更多信息,请参阅 为来自的输出 VM 磁盘创建分发设置 AWS CLI