创建基于 Deployment Manager 的解决方案

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

准备工作

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

  • 启用 Cloud Deployment Manager and Compute Engine API。

    启用 API

准备部署模板

如需在 Service 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


在 Service Catalog 中创建解决方案

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

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

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

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

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

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

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

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

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

  9. 点击创建

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

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

后续步骤