第 16 章 准备自定义 GCE 镜像并将其上传到 GCP
使用 RHEL 镜像构建器,您可以构建 gce 镜像,为用户或 GCP 服务帐户提供凭证,然后将 gce 镜像直接上传到 GCP 环境。
16.1. 使用 CLI 配置 gce 镜像,并将其上传到 GCP 复制链接链接已复制到粘贴板!
设置带有凭证的配置文件,以使用 RHEL 镜像构建器 CLI 将 gce 镜像上传到 GCP。
您无法手动将 gce 镜像导入到 GCP,因为镜像不能引导。您必须使用 gcloud 或 RHEL 镜像构建器上传它。
先决条件
您有一个有效的 Google 帐户和凭证,以便将镜像上传到 GCP。凭据可以从用户帐户或服务帐户获取。与凭证关联的帐户必须至少分配以下 IAM 角色:
-
roles/storage.admin- 用于创建和删除存储对象 -
roles/compute.storageAdmin- 将虚拟机镜像导入到 Compute Engine。
-
- 您有一个现有的 GCP 存储桶。
流程
使用文本编辑器创建一个包含以下内容的
gcp-config.toml配置文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<gcp_bucket>指向一个现有存储桶。它用于存储正在上传的镜像的中间存储对象。 -
<gcp_storage_region>是常规的 Google 存储区域和一个单区域或多区域 -
<object_key>是中间存储对象的名称。它在上传过程前不能存在,并在上传过程完成后被删除。如果对象名称不以.tar.gz结尾,则扩展会自动添加到对象名称中。 <gcp_credentials>是从 GCP 下载的凭证 JSON 文件的Base64 编码的方案。凭证决定了 GCP 将镜像上传到的项目。注意如果您使用不同的机制通过 GCP 进行身份验证,那么在
gcp-config.toml文件中指定<gcp_credentials>是可选的。有关其他验证方法,请参阅 使用 GCP 进行验证 。
-
从 GCP 下载的 JSON 文件中检索
<gcp_credentials>。sudo base64 -w 0 cee-gcp-nasa-476a1fa485b7.json
$ sudo base64 -w 0 cee-gcp-nasa-476a1fa485b7.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用附加镜像名称和云供应商配置集创建 compose:
sudo composer-cli compose start <blueprint_name> gce <image_key> gcp-config.toml
$ sudo composer-cli compose start <blueprint_name> gce <image_key> gcp-config.tomlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 镜像构建、上传和云注册过程最多可能需要十分钟才能完成。
验证
验证镜像状态为 FINISHED:
sudo composer-cli compose status
$ sudo composer-cli compose statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow