创建部署包

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

本页面介绍为虚拟机 (VM) 产品创建部署软件包的步骤。您必须创建并提交部署包,以将产品发布到 Google Cloud Marketplace。

部署是一起创建和管理的一组资源,例如您的产品所需的资源。部署包是通常一起部署的一组资源的规范,从而简化了部署该特定产品的过程。

在本指南中,您将使用 Deployment Manager 来创建部署包。借助 Deployment Manager,您可以使用简单的 YAML、JSON 或 ProtoText 配置文件为虚拟机产品创建部署包。

确定如何创建部署包

我们建议您使用 Producer Portal 的引导式配置选项,直接在 Google Cloud 控制台中创建部署包。

引导式配置支持简单的虚拟机产品,例如具有基本防火墙规则的单虚拟机部署,但不支持一些复杂的功能,例如具有多个虚拟机和自定义配置字段的部署。如果您需要引导式配置不支持的功能,则可以使用开源 mpdev 工具创建部署软件包或通过向其添加额外功能来自定义现有部署软件包。

在引导式配置和手动配置之间切换

如果您使用 Producer Portal 的引导式配置选项,并且稍后想要切换到手动配置部署软件包,则可以点击转到手动配置以转到手动配置。

进行切换时,您可以下载您在引导式配置中创建的部署软件包的 Autogen 规范,以用作手动配置的基础。

准备工作

  1. 确保您的部署不使用 Terraform,或者与 Terraform 具有任何依赖项。

  2. 若您使用 mpdev 工具创建部署包,请完成以下步骤:

    1. 按照 marketplace-tools 代码库中的说明安装 mpdev 工具。
    2. 下载 Google Cloud SDK

创建并提交部署包

以下部分介绍如何创建部署包并将软件包提交给 Google 进行审核。

使用以下方法之一创建部署包:

使用 Google Cloud 控制台创建部署包

如需使用 Google Cloud 控制台创建和提交简单的部署包,请执行以下操作:

  1. 在 Producer Portal 中,转到部署包部分。

  2. 选择简单解决方案的引导式配置,然后点击继续

  3. 配置 Autogen 规范部分,点击标有 Cloud Storage 存储分区的输入字段旁边的浏览

    如果您已创建 Cloud Storage 存储桶,请在此处选择它。

    如果您没有 Cloud Storage 存储桶,请点击标有创建新存储桶的图标。创建新存储桶时,您需要执行以下操作:

    • 为存储桶选择名称。
    • 指定存储桶在其中存储数据的一个或多个区域。
    • 指定数据的存储类别。
    • 确定要对存储桶数据使用的 Identity and Access Management (IAM) 权限所采用的细化程度。
    • 配置可选的高级设置,例如加密或数据保留政策。
  4. 确保您的 Cloud Storage 存储桶已启用对象版本控制

  5. 要保存存储桶设置并开始配置部署包,请点击配置

  6. 选择产品的映像下,选择虚拟机映像

    您选择的虚拟机映像必须是:

    • 与您当前的 Google Cloud 项目关联。

    • 已附加到您产品的正确许可。您可以在创建虚拟机映像时创建并附加此许可。

  7. 选择机器类型下,您必须为虚拟机产品指定默认可用区最低机器类型默认机器类型,及其启动磁盘的大小和类型。

  8. 指定操作系统下,您必须指定虚拟机映像使用的操作系统的名称和版本,以及虚拟机映像的版本号。

  9. (可选)在设置虚拟机访问权限下,您可以指定网站和管理员网址,以及用户在部署后可用于访问虚拟机的用户名和密码。

  10. (可选)在配置网络下,您可以指定 IP 转发设置和配置防火墙规则

  11. (可选)您可以在定义后续步骤下,为您的产品用户提供操作说明,指导他们开始使用您的产品。 他们部署您的产品后,将能看到这些说明。

  12. 完成上述步骤后,点击生成以创建部署包。

    如果您日后需要对部署包进行其他更改,可以点击 EDIT 进行更改,然后点击 GENERATE 以重新生成应用了这些更改的部署包。

    如果您计划切换为手动配置,可以点击下载以下载您在引导式配置中创建的部署包的 Autogen 规范,并据此进行手动配置。

  13. 在 Producer Portal 中提交部署包以供审核。您提交包裹后,Google 最多可能需要两周时间来审核和批准该包裹。

使用 mpdev 创建部署包

本部分介绍了如何使用 mpdev 工具创建部署包并提交部署包以供审核。

mpdev 工具使用 Deployment Manager Autogen 为部署包生成 Deployment Manager 模板。该工具根据包含虚拟机产品的配置输入的 Autogen 规范生成部署包。

概括来讲,如需生成和提交部署包,您必须执行以下操作:

  1. 创建并配置 Cloud Storage 存储桶,以存储和管理对部署包的访问权限。
  2. 创建 Autogen 规范,以包含虚拟机产品的映像详细信息和部署要求。
  3. 根据您的 Autogen 规范生成部署包,并将该部署包上传到 Cloud Storage 存储桶。
  4. 在 Producer Portal 中提交部署包以供审核。在您提交部署包后,Google 最多可能需要两周的时间来审核并批准该部署包。

以下部分介绍如何完成生成和提交部署包的步骤。

创建 Cloud Storage 存储桶

您必须在用于 Producer Portal 的同一公共 Google Cloud 项目中创建 Cloud Storage 存储桶,并通过以下方式配置该存储桶:

  • 为存储桶启用对象版本控制,以保护您的部署包免遭删除或覆盖。
  • Storage Object Viewer (roles/storage.objectViewer) 角色授予 cloud-commerce-marketplace-onboarding@twosync-src.google.com

如需创建和配置 Cloud Storage 存储桶,请运行以下 gsutil 命令:

  BUCKET_NAME=YOUR_BUCKET_NAME
  gsutil mb $BUCKET_NAME
  gsutil versioning set on gs://$BUCKET_NAME
  gsutil iam ch "group:cloud-commerce-marketplace-onboarding@twosync-src.google.com:objectViewer" $BUCKET_NAME
  

其中,YOUR_BUCKET_NAME 是您为新存储桶提供的名称(须遵循命名要求)。

创建您的 Autogen 规范

如需创建 Autogen 规范,我们建议您使用 marketplace-tools 代码库中的 single VM example 作为初始 Autogen 规范,然后使用虚拟机的配置详细信息自定义该规范。

对于更复杂的用例,您可以在一些集成开发环境 (IDE) 中设置自动填充,以帮助修改和验证 configurations.yaml 文件。

如需从 single VM example 创建 Autogen 规范,请执行以下操作:

  1. 将示例的预配置 Autogen 规范添加到本地目录:

    PACKAGE=YOUR_PACKAGE_NAME
    mpdev pkg get https://github.com/GoogleCloudPlatform/marketplace-tools.git/examples/deployment-manager/autogen/singlevm $PACKAGE
    

    其中,YOUR_PACKAGE_NAME 是您为本地目录提供的名称。例如 my-deployment-package

  2. 使用以下信息修改 configurations.yaml 文件,以使用虚拟机的配置详细信息更新规范:

    • 虚拟机映像的名称。
    • 托管您的虚拟机映像的公共 Google Cloud 项目(即您用于 Producer Portal 的项目)的 ID 项目。

    如需了解更新 configurations.yaml 文件中的虚拟机映像和 Google Cloud 项目字段的步骤,请参阅 single VM exampleREADME.md 文件。

  3. 如果您的产品需要,请自定义其他字段,例如 passwordsdeployInputpostDeploy。这些字段位于 configurations.yaml 文件中的 DeploymentSpec 下。如需详细了解可以自定义的字段,请参阅 Autogen 参考文档

生成部署包

创建并自定义 Autogen 规范后,您可以使用此规范为部署包生成 Deployment Manager 模板文件。如需存储部署包,请将部署包上传到 Cloud Storage 存储桶。

如需生成并上传部署包,请执行以下操作:

  1. 将部署包的输出位置设置为 Cloud Storage 存储桶:

    mpdev cfg set zipPath gs://BUCKET_NAME/OBJECT
    

    其中,BUCKET_NAME 是您为部署包创建的存储桶的名称,OBJECT 是您为 Cloud Storage 对象提供的名称(根据命名准则)。

  2. 生成部署包:

    mpdev apply -f $PACKAGE/configurations.yaml
    

将生成的部署包压缩并上传到存储桶。

如需验证模板是否已正确配置,您可以运行以下命令来创建部署:

  TMPDIR=$(mktemp -d)
  unzip $PACKAGE/template.zip -d $TMPDIR
  gcloud deployment-manager deployments create $PACKAGE --config $TMPDIR/test_config.yaml
  

在 Producer Portal 中提交部署包以供审核。

如果您使用 Producer Portal 创建 Cloud Marketplace 产品信息,则在创建部署包后,您必须将该软件包提交到 Producer Portal,以便 Cloud Marketplace 团队可以审核和批准该软件包。

如需提交部署包以供审核,请执行以下操作:

引导式配置

  1. 在 Producer Portal 中,转到部署包部分。

  2. 如需在 Producer Portal 中提交部署包以供审核,请点击提交。在您提交部署包后,Google 最多可能需要两周的时间来审核并批准该部署包。

手动配置

  1. 在 Google Cloud 控制台中打开 Producer Portal:

    https://console.cloud.google.com/producer-portal?project=YOUR_PUBLIC_PROJECT_ID
    

    YOUR_PUBLIC_PROJECT_ID 替换为您为 Cloud Marketplace 创建的公共项目的 ID,例如 my-organization-public

  2. 在产品列表中,点击您的产品的名称。

  3. 在产品的概览页面上,转到部署包部分,然后点击修改

  4. 指定 Cloud Storage 对象位置下,选择您之前上传的部署包对象。

  5. 点击验证。验证过程最多需要两个小时才能完成,您可以在完成后完成屏幕。

  6. 在 Producer Portal 成功读取您的部署包后,您可以点击部署预览查看客户如何查看您的虚拟机配置

  7. 验证成功完成后,如需提交部署包以供审核,请点击提交。在您提交部署包后,Google 最多可能需要两周的时间来审核并批准该部署包。

客户视图中的部署包

对于基于自动生成的标准解决方案部署包的产品,以下各部分显示了客户在部署产品时看到的屏幕布局。

部署包的客户视图

标准客户输入元素显示在以下屏幕截图的左侧,包括地区、机器类型、磁盘选项和网络选项。

如果客户的部署需要多个网络接口卡,则他们可以通过单击添加网络接口来添加其他网络接口。

要部署您的产品,您的客户必须填写输入字段,然后单击部署

已部署包的客户视图

下图显示了客户成功部署您的产品后看到的产品视图。

下面的屏幕截图的右侧显示了标准输出元素,包括网址、临时管理员密码和实例信息。