12.4. 准备自定义 GCE 镜像并将其上传到 Google Cloud


您可以创建自定义镜像,然后使用 RHEL 镜像构建器将其自动更新到 Google Cloud 实例。

使用 RHEL 镜像构建器,您可以构建 gce 镜像,为用户或 Google Cloud 服务帐户提供凭证,然后将 gce 镜像直接上传到 Google Cloud 环境中。

使用凭证设置配置文件,使用 RHEL 镜像构建器 CLI 将 gce 镜像上传到 Google Cloud。

警告

您无法手动将 gce 镜像导入到 Google Cloud,因为镜像不会引导。您必须使用 gcloud 或 RHEL 镜像构建器上传它。

先决条件

  • 您有有效的 Google 帐户和凭证,可将镜像上传到 Google Cloud。凭据可以从用户帐户或服务帐户获取。与凭证关联的帐户必须至少分配以下 IAM 角色:

    • roles/storage.admin - 用于创建和删除存储对象
    • roles/compute.storageAdmin - 将虚拟机镜像导入到 Compute Engine。
  • 您有一个现有的 Google Cloud 存储桶。

流程

  1. 使用文本编辑器创建一个包含以下内容的 gcp-config.toml 配置文件:

    provider = "gcp"
    [settings]
    bucket = "GOOGLE_CLOUD_BUCKET"
    region = "GOOGLE_CLOUD_STORAGE_REGION"
    object = "OBJECT_KEY"
    credentials = "GOOGLE_CLOUD_CREDENTIALS"
    • GOOGLE_CLOUD_BUCKET 指向现有的存储桶。它用于存储正在上传的镜像的中间存储对象。
    • GOOGLE_CLOUD_STORAGE_REGION 是常规的 Google 存储区域和双区域或多区域。
    • OBJECT_KEY 是中间存储对象的名称。它在上传过程前不能存在,并在上传过程完成后被删除。如果对象名称不以 .tar.gz 结尾,则扩展会自动添加到对象名称中。
    • GOOGLE_CLOUD_CREDENTIALS 是从 Google Cloud 下载的凭证 JSON 文件的 Base64编码方案。凭证决定了 Google Cloud 将镜像上传到的项目。

      注意

      如果您使用不同的机制与 Google Cloud 进行身份验证,在 gcp-config.toml 文件中指定 GOOGLE_CLOUD_CREDENTIALS 是可选的。有关其他验证方法,请参阅 使用 Google Cloud 身份验证。

  2. 从 Google Cloud 下载的 JSON 文件检索 GOOGLE_CLOUD_CREDENTIALS

    $ sudo base64 -w 0 cee-gcp-nasa-476a1fa485b7.json
  3. 使用附加镜像名称和云供应商配置集创建 compose:

    $ sudo composer-cli compose start BLUEPRINT-NAME gce IMAGE_KEY gcp-config.toml

    镜像构建、上传和云注册过程最多可能需要十分钟才能完成。

验证

  • 验证镜像状态为 FINISHED:

    $ sudo composer-cli compose status

您可以在 RHEL 镜像构建器中使用几种不同类型的凭证来使用 Google Cloud 进行身份验证。如果将 RHEL 镜像构建器配置设置为使用多个凭证与 Google Cloud 进行身份验证,它会按以下首选顺序使用凭证:

  1. 在配置文件中,使用 composer-cli 命令指定的凭证。
  2. 凭证在 osbuild-composer worker 配置中被配置。
  3. Google Cloud SDK 库中的 应用程序默认凭证,它尝试使用以下选项自动找到身份验证的方法:

    1. 如果设置了 GOOGLE_APPLICATION_CREDENTIALS 环境变量,应用程序默认凭据会尝试加载并从文件中使用由变量指向的凭证。
    2. 应用默认凭据尝试使用附加到运行代码的资源的服务帐户进行身份验证。例如,Google Compute Engine 虚拟机。

      注意

      您必须使用 Google Cloud 凭证来确定要将镜像上传到的 Google Cloud 项目。因此,除非要将所有镜像上传到同一 Google Cloud 项目,否则必须使用 composer-cli 命令在 gcp-config.toml 配置文件中指定凭证。

您可以在上传目标配置 gcp-config.toml 文件中指定 Google Cloud 身份验证凭证。使用 Google 帐户凭证 JSON 文件的 Base64 编码方案来节省时间。

流程

  1. 运行以下命令,使用存储在 GOOGLE_APPLICATION_CREDENTIALS 环境变量中的路径获取 Google 帐户凭证文件的编码内容:

    $ base64 -w 0 "${GOOGLE_APPLICATION_CREDENTIALS}"
  2. 在上传目标配置 gcp-config.toml 文件中,设置凭证:

    provider = "gcp"
    
    [settings]
    provider = "gcp"
    
    [settings]
    credentials = "GOOGLE_CLOUD_CREDENTIALS"

您可以配置 Google Cloud 身份验证凭据,以便在全局范围内用于所有镜像构建。这样,如果要将镜像导入到同一 Google Cloud 项目,您可以对上传到 Google Cloud 的所有镜像使用相同的凭证。

流程

  • /etc/osbuild-worker/osbuild-worker.toml worker 配置中,设置以下凭证值:

    [gcp]
    credentials = "PATH_TO_GOOGLE_CLOUD_ACCOUNT_CREDENTIALS"
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部