将定制映像导入并验证到 VPC 中
您可以在本地创建自己的定制映像,然后从 IBM Cloud® Object Storage将其导入到 IBM Cloud® Virtual Private Cloud 基础结构。 然后,您可以使用自定义图像创建一个新的虚拟服务器实例,该实例在KVM虚拟机管理程序上运行。 如果计划在专用目录中使用定制映像,那么必须首先将该定制映像导入到 IBM Cloud VPC 中并对其进行验证。
您还可以在导入时创建一个自定义的启动卷图像,并将其附加到服务器上。 有关更多信息,请参阅 关于从卷创建映像。
先决条件
要完成此任务,您必须具有可用的 IBM Cloud® Object Storage 实例。 您还必须创建一个授权,以便VPC的图像服务能够访问 IBM Cloud Object Storage 中的图像。 有关更多信息,请参阅 授予对 IBM Cloud Object Storage 的访问权以导入和导出映像。
所有自定义图像必须符合以下要求:所有自定义图像必须符合以下要求:所有自定义图像必须符合以下要求:所有自定义图像必须符合以下要求
- 包含单个文件或卷。
- 应为 qcow2 或 vhd 格式。
- 启用云启动或使用 ESXi kickstart 启动。
- 大小不超过 250 GB。
- 最小大小为 10 GB。 对于小于 10 GB 的任何映像,大小将向上取整为 10 GB。
导入定制映像时,请牢记以下注意事项:
- 导入定制映像时,该映像会成为将其导入到的帐户的专用映像。
- 您选择导入镜像的区域就是您可以根据该镜像创建虚拟服务器的区域。
- 对于具有 Red Hat Enterprise Linux® 或 Windows ® 操作系统的定制映像,必须选择相应版本的操作系统。 根据配置映像的方式,选择自带许可证
byol
,或者如果计划通过 IBM Cloud对操作系统进行许可,请选择未附加byol
的版本。
有关定制映像的更多信息,请参阅 定制映像入门。
使用 UI 导入定制图像
如果 IBM Cloud Object Storage 中有可用映像,那么可以使用 IBM Cloud VPC 控制台将其导入到 IBM Cloud 基础架构。
- 确保兼容的定制映像在 IBM Cloud Object Storage 中可用。 要将图像上载到 IBM Cloud Object Storage,请在存储区的“对象”页面上,单击 上载。 可以使用 Aspera 高速传输插件来上传大于 200 MB 的映像。 有关更多信息,请参阅 创建 Linux 定制映像, 创建 Windows 定制映像,自带许可证 和 上载数据 到 IBM Cloud Object Storage。
- 在 IBM Cloud 控制台中,转至 “菜单”图标
> VPC 基础结构> 计算> 映像。
- 在 定制图像 选项卡上,单击 创建。
- 填写表 1 中描述的字段,然后单击 创建定制图像。
字段 | 值 |
---|---|
地区 | 选择您希望定制映像可用于供应的特定地理区域和区域。 |
名称 | 自定义图片需要命名。 |
资源组 | 选择自定义图片的资源组。 |
标记 | 您可以将标签分配给此资源,以便可以轻松地过滤资源列表中的资源。 |
源 | 选择 Cloud Object Storage 作为源。 将显示一个列表,您可以从中选择存储要导入的映像的 IBM Cloud Object Storage 服务实例。 是否需要改为从卷创建定制映像? 通过选择 虚拟服务器实例引导卷 或 块存储器引导卷来选择定制映像的源。 有关更多信息,请参阅 从卷创建映像。 |
地区 | 选择存储映像的特定地理区域。 |
存储区 | 选择存储映像的 IBM Cloud Object Storage 存储区。 |
名称 | 选择 IBM Cloud Object Storage 服务实例中要导入的映像文件。 如果要导入已加密的映像,那么必须使用 QEMU 和您自己的口令使用 LUKS 加密对该映像进行加密。 有关更多信息,请参阅 加密映像。 |
操作系统 |
选择映像中包含的操作系统。 对于具有 Red Hat Enterprise Linux 或 Windows 操作系统的定制映像,您可以通过 IBM Cloud自带许可证 (BYOL) 或许可证。 对于 Red Hat Enterprise Linux 或 Windows BYOL 定制映像,必须选择在名称后追加 如果配置了 Red Hat Enterprise Linux 或 Windows 定制映像以通过 IBM Cloud进行许可,那么必须选择非 BYOL 操作系统。 例如,如果您具有计划通过 IBM Cloud许可的 Windows 2019 定制映像,请在导入定制映像时选择 windows-2019-amd64 作为操作系统。 对于使用通用操作系统的定制映像,请选择 备注:
|
加密 | 默认选项是“供应商管理”。 如果尚未使用 QEMU 对映像进行加密,请使用缺省值 Provider-managed。 如果要导入使用 QEMU 和您自己的口令加密的映像,请选择用于存储保护口令的客户根密钥 (CRK) 的密钥管理服务。 选择 Key Protect 或 Hyper Protect Crypto Services。 VHD格式的图像不支持加密。 |
加密服务实例 | 对于加密映像,请选择密钥管理服务的特定实例,其中存储了用于打包加密口令的 CRK。 有关更多信息,请参阅 设置密钥管理服务和密钥。 |
密钥名称 | 选择用于打包加密口令的客户根密钥 (CRK)。 有关更多信息,请参阅 设置密钥管理服务和密钥。 |
包装的数据加密密钥 | 对于已加密的映像,请指定与打包数据加密密钥 (WDEK) 相关联的密文。 WDEK 是通过将用于使用客户根密钥加密映像的口令打包而生成的。 有关更多信息,请参阅 设置密钥管理服务和密钥。 |
管理映像生命周期 (可选) | 选择以调度映像的状态更改。 您可以调度单个状态变更或调度映像的完整生命周期。 映像状态为:
您可以在三种状态之间来回移动。 将仅显示您可以更改为的状态。 您可以使用日历日期和时间或天数来调度状态更改。 废弃日期必须始终晚于废弃日期。 |
使用 CLI 导入定制映像
确保兼容的定制映像在 IBM Cloud Object Storage 中可用。 有关更多信息,请参阅 创建 Linux 定制映像,创建 Windows 定制映像,创建通用操作系统定制映像, 自带许可证 和 将数据 上载到 IBM Cloud Object Storage。
当您在 IBM Cloud Object Storage 中有一个图像可用时,您可以使用命令行界面(CLI)将其导入到 IBM Cloud VPC 基础架构中。
要使用 CLI 导入定制映像,请使用 ibmcloud is image-create
命令。 指定要使用 IMAGE_NAME
变量创建的定制映像的名称。 该名称不能由区域中的另一个映像使用,并且将为系统提供的映像保留以 ibm-
开头的名称。 您还必须指定源; 例如,指定带有图像文件位置的 --file
选项。 使用映像的操作系统名称指定
--os-name
选项。
ibmcloud is image-create IMAGE_NAME [--file IMAGE_FILE_LOCATION] [--os-name OPERATING_SYSTEM_NAME]
以下示例创建名称为 my-ubuntu-16-amd64
的定制映像。 图像源位置为 cos://us-south/custom-image-vpc-bucket/customImage-0.qcow2
。 操作系统为 ubuntu-16-amd64
。
ibmcloud is image-create my-ubuntu-16-amd64 --file cos://us-south/custom-image-vpc-bucket/customImage-0.qcow2 --os-name ubuntu-16-amd64
有关更多信息,请参阅 VPC CLI 参考页面中的 ibmcloud is image-create。
使用 CLI 调度定制映像生命周期状态更改
使用命令行界面 (CLI) 导入定制映像时,还可以使用 ibmcloud is image-create
命令的选项同时调度 IBM Cloud VPC 定制映像的生命周期状态更改。
指定要使用 IMAGE_NAME
变量创建的定制映像的名称。 该名称不能由区域中的另一个映像使用,并且将为系统提供的映像保留以 ibm-
开头的名称。 您还必须指定源; 例如,指定带有图像文件位置的 --file
选项。 使用映像的操作系统名称指定 --os-name
选项。
要调度 deprecate-at
或 obsolete-at
属性,请以 ISO 8601 (YYYY-MM-DDThh:mm:ss+hh:mm
) 日期和时间格式指定日期。
YYYY
是四位数的年份MM
是两位数的月份DD
是两位数的日期T
分隔日期和时间信息hh
是两位数的小时mm
是两位数的分钟数+hh:mm
或-hh:mm
是全球标准时区
因此,北美中央标准时区 (CST) 2023 年 9 月 30 日晚上 8:00 的日期将为 2023-09-30T20:00:00-06:00
调度日期和时间时,不能使用当前日期和时间或将来的日期和时间。 例如,如果是 6 月 12 日的 8 AM,那么调度的日期和时间必须在 6 月 12 日的 8 AM 之后。 如果同时定义 deprecate-at
和 obsolete-at
日期和时间,那么 deprecate-at
日期必须晚于 obsolete-at
日期和时间。
ibmcloud is image-create IMAGE_NAME [--file IMAGE_FILE_LOCATION] [--os-name OPERATING_SYSTEM_NAME] [--deprecate-at YYYY-MM-DDThh:mm:ss+hh:mm] [--obsolete-at YYYY-MM-DDThh:mm:ss+hh:mm]
以下示例创建名称为 my-ubuntu-16-amd64
的定制映像。 图像源位置为 cos://us-south/custom-image-vpc-bucket/customImage-0.qcow2
。 操作系统为 ubuntu-16-amd64
。 已安排在 2023-03-01T06:11:28+05:30
上不推荐使用该映像。 该映像已调度为在 2023-12-31T06:11:28+05:30
上过时。
ibmcloud is image-create my-ubuntu-16-amd64 --file cos://us-south/custom-image-vpc-bucket/customImage-0.qcow2 --os-name ubuntu-16-amd64 --deprecate-at 2023-03-01T06:11:28+05:30 --obsolete-at 2023-12-31T06:11:28+05:30
有关更多信息,请参阅 VPC CLI 参考页面中的 ibmcloud is image-create。
使用 API 导入定制映像
确保兼容的定制映像在 IBM Cloud Object Storage 中可用。 有关更多信息,请参阅 创建 Linux 定制映像,创建 Windows 定制映像,创建通用操作系统定制映像, 自带许可证 和 上载数据 到 IBM Cloud Object Storage。
当您在 IBM Cloud Object Storage中具有可用映像时,可以使用应用程序编程接口 (API) 将其导入到 IBM Cloud VPC 基础结构。
要使用 API 导入定制映像,请使用 创建映像。
name
不能由区域中的另一个映像使用,以 ibm-
开头的名称将保留用于系统提供的映像。 使用图像的位置指定 file.href
子属性。 使用映像操作系统的名称指定 operating_system.name
子属性。
通用操作系统定制映像是可用于评估和测试目的的 Beta 功能。 通用操作系统具有 family
个 (共 Generic
个)。 确保选择 allow_user_image_creation
值为 true
的值以及操作系统正确引导和初始化所需的 user_data_format
。 有关更多信息,请参阅 用户数据格式注意事项。
以下示例导入名称为 my-image
,源位置为 cos://us-south/my-bucket/my-image.qcow2
的定制映像,该映像的操作系统为 debian-9-amd64
。
curl -X POST "$vpc_api_endpoint/v1/images?version=2023-02-21&generation=2" -H "Authorization: Bearer $iam_token" -d '{
"name": "my-image",
"file": {
"href": "cos://us-south/my-bucket/my-image.qcow2"
},
"operating_system": {
"name": "debian-9-amd64"
}
}'
使用 API 调度定制映像生命周期状态更改
使用应用程序编程接口 (API) 导入定制映像时,还可以使用 创建映像 命令同时调度 IBM Cloud VPC 定制映像的生命周期状态更改。
name
不能由区域中的另一个映像使用,以 ibm-
开头的名称将保留用于系统提供的映像。 使用图像的位置指定 file.href
子属性。 使用映像操作系统的名称指定 operating_system.name
子属性。
要调度 deprecation_at
或 obsolescence_at
属性,请以 ISO 8601 (YYYY-MM-DDThh:mm:ss+hh:mm
) 日期和时间格式指定日期。
YYYY
是四位数的年份MM
是两位数的月份DD
是两位数的日期T
分隔日期和时间信息hh
是两位数的小时mm
是两位数的分钟数+hh:mm
或-hh:mm
是全球标准时区
因此,北美中央标准时区 (CST) 2023 年 9 月 30 日晚上 8:00 的日期将为 2023-09-30T20:00:00-06:00
调度日期和时间时,无法使用当前日期和时间。 例如,如果是 6 月 12 日的 8 AM,那么调度的日期和时间必须在 6 月 12 日的 8 AM 之后。 如果同时定义 deprecation_at
和 obsolescence_at
日期和时间,那么 obsolescence_at
日期必须晚于 deprecation_at
日期和时间。
以下示例导入名称为 my-image
,源位置为 cos://us-south/my-bucket/my-image.qcow2
的定制映像,该映像的操作系统为 debian-9-amd64
。 已安排在 2023-03-01T06:11:28+05:30
上不推荐使用该映像。 该映像已调度为在 2023-12-31T06:11:28+05:30
上过时。
curl -X POST "$vpc_api_endpoint/v1/images?version=2023-02-21&generation=2" -H "Authorization: Bearer $iam_token" -d '{
"name": "my-image",
"file": {
"href": "cos://us-south/my-bucket/my-image.qcow2"
},
"operating_system": {
"name": "debian-9-amd64"
},
"deprecation_at": "2023-03-01T06:11:28+05:30",
"obsolescence_at": "2023-12-31T06:11:28+05:30"
}'
使用 Terraform 调度定制映像生命周期状态更改
使用 Terraform 导入定制映像时,还可以使用 Terraform 资源命令 ibm_is_image同时调度 IBM Cloud VPC 定制映像的生命周期状态更改。
name
属性不能由区域中的另一个映像使用,以 ibm-
开头的名称将保留用于系统提供的映像。
要调度 deprecation_at
或 obsolescence_at
属性,请以 ISO 8601 (YYYY-MM-DDThh:mm:ss+hh:mm
) 日期和时间格式指定日期。
YYYY
是四位数的年份MM
是两位数的月份DD
是两位数的日期T
分隔日期和时间信息hh
是两位数的小时mm
是两位数的分钟数+hh:mm
或-hh:mm
是全球标准时区
因此,北美中央标准时区 (CST) 2023 年 9 月 30 日晚上 8:00 的日期将为 2023-09-30T20:00:00-06:00
调度日期和时间时,无法使用当前日期和时间。 例如,如果是 6 月 12 日上午 8:00,那么调度的日期和时间必须在 6 月 12 日上午 8:00 之后。 如果同时定义 deprecation_at
和 obsolescence_at
日期和时间,那么 obsolescence_at
日期必须晚于 deprecation_at
日期和时间。
以下示例导入名称为 example-image
,源位置为 cos://us-south/buckettesttest/livecd.ubuntu-cpc.azure.vhd
的定制映像,该映像的操作系统为 ubuntu-16-04-amd64
。 已安排在 2023-11-28T15:10:00.000Z
上不推荐使用该映像。 该映像已调度为在 2023-11-28T15:10:00.000Z
上过时。
-
将状态变更调度为
deprecated
。resource "ibm_is_image" "example" { name = "example-image" href = "cos://us-south/buckettesttest/livecd.ubuntu-cpc.azure.vhd" operating_system = "ubuntu-16-04-amd64" deprecated_at = "2023-11-28T15:10:00.000Z" }
-
将状态变更调度为
obsolete
。resource "ibm_is_image" "example" { name = "example-image" href = "cos://us-south/buckettesttest/livecd.ubuntu-cpc.azure.vhd" operating_system = "ubuntu-16-04-amd64" obsolescence_at = "2023-11-28T15:10:00.000Z" }
使用 UI 验证导入的定制映像
导入定制映像后,可以查看将该映像导入到 IBM Cloud VPC时为该映像生成的校验和。
如果在导入映像之前在本地生成校验和,那么可以比较这两个校验和以确保它们完全相同。 匹配的校验和指示图像未改变。
-
在 IBM Cloud 控制台中,转至 “菜单”图标
> VPC 基础结构> 计算> 映像。
-
在 定制映像 选项卡上,从定制映像列表中,单击要验证的定制映像的名称。
-
在图像详细信息侧面板中,找到 校验和 (SHA256) 字段。 您将看到类似于 6809606da67eb83670e6249e54e94043eb43c0471669fb96ea4050c4c07e2df7的内容。
仅适用于 z/OS Wazi aaS 定制映像: 无法验证从 Wazi Image Builder部署的已导入定制映像的校验和。
-
将“校验和”(SHA256) 值与在本地计算映像的校验和时生成的输出进行比较。
- 示例 Linux 命令:
sha256sum ubuntu_image.qcow2
- 示例 Mac 命令:
shasum -a 256 ubuntu_image.qcow2
- 您收到类似于以下内容的输出:
6809606da67eb83670e6249e54e94043eb43c0471669fb96ea4050c4c07e2df7
- 示例 Linux 命令:
-
使用此映像创建虚拟服务器实例或裸机服务器。 有关更多信息,请参阅 创建虚拟服务器实例 或 在 VPC 上创建 Bare Metal Servers。
使用 CLI 验证导入的定制映像
导入定制映像后,可以查看将该映像导入到 IBM Cloud VPC时为该映像生成的校验和。
如果在导入映像之前在本地生成校验和,那么可以比较这两个校验和以确保它们完全相同。 匹配的校验和指示图像未改变。
要使用 CLI 验证导入的定制映像,请使用 ibmcloud is image
命令。
首先,查看要验证的已导入定制映像的详细信息。 指定要使用 IMAGE
变量创建的定制映像的名称或标识。
ibmcloud is image IMAGE
有关更多信息,请参阅 VPC CLI 参考页面中的 ibmcloud is image。
以下示例查看标识为 r134-1d1e92e9-6550-4d06-8483-d674310045fd
的定制映像的详细信息。
ibmcloud is image r134-1d1e92e9-6550-4d06-8483-d674310045fd
Getting image r134-1d1e92e9-6550-4d06-8483-d674310045fd under account Rios IMSLess as user gbgrout@ibm.com...
ID r134-589548bd-9241-4ad7-a610-1df6ba020793
Name my-image-from-volume-cli-1
CRN crn:v1:staging:public:is:us-south:a/efe5afc483594adaa8325e2b4d1290df::image:r134-589548bd-9241-4ad7-a610-1df6ba020793
Status available
Operating system Name Architecture Vendor Version Dedicated host only
centos-7-amd64 amd64 CentOS 7.x - Minimal Install false
Source volume ID Name
r134-6438d80f-4433-4445-be2f-0cca05afff3e transpose-clubhouse-putt-repent
Created 2023-03-16T01:11:03+05:30
Deprecation Date 2023-03-01T06:11:28+05:30
Obsolescence Date 2023-12-31T06:11:28+05:30
Visibility private
Owner type user
Minimum provisioned size(GB) 250
SHA256 Checksum 774d44ac0d55f2bfe869b995565715e5d9970ec23ce7127b2e2776b2618a9f7c
File size(GB) 2
Encryption none
Resource group 11caaa983d9c4beb82690daab08717e9
Resource type image
Catalog Offering Managed false
将返回的校验和 (SHA256) 值与在本地计算映像的校验和时生成的输出进行比较。
- 示例 Linux 命令:
sha256sum ubuntu_image.qcow2
- 示例 Mac 命令:
shasum -a 256 ubuntu_image.qcow2
- 您收到类似于以下内容的输出:
6809606da67eb83670e6249e54e94043eb43c0471669fb96ea4050c4c07e2df7
验证校验和 (SHA256) 之后,请使用该映像来创建虚拟服务器。 请参阅 使用 CLI 创建虚拟服务器实例。
使用 API 验证导入的定制映像
导入定制映像后,可以查看将该映像导入到 IBM Cloud VPC时为该映像生成的校验和。
如果在导入映像之前在本地生成校验和,那么可以比较这两个校验和以确保它们完全相同。 匹配的校验和指示图像未改变。
要使用 API 作为定制映像进行验证,请使用 列出所有映像。
对于 $image_id
,指定要验证的定制映像的标识。
curl -X GET "$vpc_api_endpoint/v1/images/$image_id/?version=2023-02-21&generation=2" -H "Authorization: Bearer $iam_token"
将返回的校验和 (SHA256) 值与在本地计算映像的校验和时生成的输出进行比较。
- 示例 Linux 命令:
sha256sum ubuntu_image.qcow2
- 示例 Mac 命令:
shasum -a 256 ubuntu_image.qcow2
- 您收到类似于以下内容的输出:
6809606da67eb83670e6249e54e94043eb43c0471669fb96ea4050c4c07e2df7
验证校验和 (SHA256) 之后,请使用该映像来创建虚拟服务器。 请参阅 使用 API 创建虚拟服务器实例。
后续步骤
验证定制映像后,可以部署和管理定制映像。 有关更多信息,请参阅 管理定制映像。
如果计划使用专用目录来管理定制映像,请参阅 为 VPC 启用虚拟服务器映像。 如果计划通过全局目录发布映像,并使用软件套餐向用户记帐,请参阅 使用套餐加入 VPC 的虚拟服务器。