创建基于 Deployment Manager 的解决方案

在为组织中的用户创建 Private Catalog 解决方案时,您可以创建 Deployment Manager (DM) 解决方案,用户可以使用 Deployment Manager 模板启动该解决方案。创建解决方案后,您可以通过将解决方案添加到目录,与用户共享解决方案。

准备工作

  • 您必须具有启用了 Private Catalog 的 Google Cloud 项目的 Catalog Admin (roles/cloudprivatecatalogproducer.admin) 或 Catalog Manager (roles/cloudprivatecatalogproducer.manager) 角色。如果您没有任何角色,请与组织管理员联系以申请访问权限。

  • 启用 Cloud Deployment Manager and Compute Engine API。

    启用 API

准备部署模板

如需在 Private Catalog 中创建 Deployment Manager 解决方案,请先准备要上传的 Deployment Manager 模板 zip 文件,该文件必须包含以下文件:

  • 一个以 .jinja 扩展名结尾的 Jinja 模板文件或以 .py 扩展名结尾的 Python 模板文件。
  • 一个以 Jinja 模板的 .jinja.schema 扩展名或 Python 模板的 py.schema 扩展名结尾的架构文件

zip 文件的名称必须与架构以及 Jinja 或 Python 文件的名称一致。例如,如果 zip 文件名为 android-dev-environment.zip,则 zip 内的 Jinja 架构文件必须命名为 android-dev-environment.jinja.schema,并且 Jinja 模板必须命名为 android-dev-environment.jinja

以下代码示例演示了创建部署表单的架构文件:



info:
  title: Single Google Compute Engine Machine
  author: Google Inc.
  description: Creates a virtual machine based on zone and machine type selection.

required:
  - machinetype
  - zone

properties:
  machinetype:
    title: Machine type
    type: string
    enum:
      - n1-standard-1
      - n1-standard-2
      - n1-standard-4
      - n1-highmem-2
      - n1-highmem-4
      - n1-highmem-8
      - n1-highcpu-2
      - n1-highcpu-4
      - n1-highcpu-8
      - f1-micro
      - g1-small
  zone:
    title: Zone
    type: string
    enum:
      - us-central1-a
      - us-central1-c
      - us-east1-b
      - us-east1-c
      - us-west1-a
      - us-west1-b
      - us-west1-c


以下代码示例说明了用于创建永久性虚拟机的 Jinja 文件:



# Creates a Persistent VM
resources:
- type: compute.v1.instance
  name: vm-{{ env["deployment"] }}
  properties:
    zone: {{ properties["zone"] }}
    # Note the machineType definition at the end. custom-4-5120 specifies 4 CPUs and 5GB (5120 MB) of RAM
    machineType: https://www.googleapis.com/compute/v1/projects/{{ env["project"] }}/zones/{{ properties["zone"] }}/machineTypes/{{ properties["machinetype"] }}
    disks:
    - deviceName: boot
      type: PERSISTENT
      boot: true
      autoDelete: true
      initializeParams:
        diskName: disk-{{ env["deployment"] }}
        sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/family/debian-9
    networkInterfaces:
    - network: https://www.googleapis.com/compute/v1/projects/{{ env["project"] }}/global/networks/default
      # Access Config required to give the instance a public IP address
      accessConfigs:
      - name: External NAT
        type: ONE_TO_ONE_NAT


在 Private Catalog 中创建解决方案

要创建基于 Deployment Manager 模板的解决方案,请执行以下操作:

  1. 转到 Cloud Console 中的 Private Catalog Admin 解决方案页面
    转到“解决方案”页面

  2. 点击选择以选择 Google Cloud 项目。

  3. 点击创建解决方案。在下拉列表中,选择创建 DM 解决方案

  4. 输入解决方案的名称、说明和宣传语。 标语是用户在浏览 Private Catalog 时看到的解决方案简短说明。

  5. 上传包含部署配置的文件的 zip 文件。

  6. (可选)上传解决方案的图标。 建议的图标尺寸为 80 × 80 像素。

  7. (可选)输入创建者的支持链接和联系信息。

  8. (可选)添加关联到解决方案文档的链接。

  9. 点击创建

以下屏幕截图说明了如何创建基于 DM 的解决方案:

创建基于 Cloud Deployment Manager 模板的解决方案

后续步骤