Deployment Manager ベースのソリューションの作成
組織内のユーザー用にサービス カタログ ソリューションを作成するときに Deployment Manager(DM)ソリューションを作成できます。ユーザーはこれを Deployment Manager テンプレートを使用して起動します。ソリューションを作成した後、そのソリューションをカタログに追加すればユーザーと共有できます。
始める前に
サービス カタログが有効になっている Google Cloud プロジェクトのカタログ管理者(
roles/cloudprivatecatalogproducer.admin
)またはカタログ マネージャー(roles/cloudprivatecatalogproducer.manager
)のロールを付与されているが必要あります。どちらのロールも付与されていない場合は、組織管理者に連絡してアクセス権をリクエストしてください。-
Enable the Cloud Deployment Manager and Compute Engine APIs.
デプロイメント テンプレートの準備
サービス カタログで 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
次のコードサンプルは、永続 VM を作成するための 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
サービス カタログでのソリューションの作成
Deployment Manager テンプレートベースのソリューションを起動するには:
Cloud Console でサービス カタログ管理者の [ソリューション] ページに移動します。
[ソリューション] ページに移動[選択] をクリックして、Google Cloud プロジェクトを選択します。
[ソリューションを作成] をクリックします。プルダウン リストで [DM ソリューションを作成] を選択します。
ソリューションの名前、説明、タグラインを入力します。タグラインとは、ユーザーがサービス カタログをブラウジングするときに表示されるソリューションの簡単な説明です。
デプロイメント構成のファイルを含む zip ファイルをアップロードします。
必要に応じて、ソリューションのアイコンをアップロードします。 アイコンの推奨サイズは 80×80 ピクセルです。
必要に応じて、サポートリンクとクリエイターの連絡先情報を入力します。
必要に応じて、ソリューションのドキュメントへのリンクを追加します。
[CREATE] をクリックします。
次のスクリーンショットは、DM ベースのソリューションの作成について示したものです。
次のステップ
- カタログにソリューションを割り当て、組織内のユーザーがソリューションにアクセスしてデプロイできるようにする。