デプロイ パッケージの作成

このページでは、仮想マシン(VM)プロダクト用のデプロイ パッケージを作成する手順について説明します。プロダクトを Google Cloud Marketplace に公開するには、デプロイ パッケージを作成して送信する必要があります。

デプロイメントとは、プロダクトに必要なリソースなど、一緒に作成および管理される一連のリソースです。デプロイ パッケージとは、通常一緒にデプロイされる一連のリソースの仕様であり、特定のプロダクトのデプロイ プロセスを合理化します。

このガイドでは、Deployment Manager を使用してデプロイ パッケージを作成します。Deployment Manager により、シンプルな YAML、JSON、または ProtoText 構成ファイルを使用して、VM プロダクトのデプロイ パッケージを作成できます。

デプロイ パッケージの作成方法を決定する

プロダクトが基本的なファイアウォール ルールを持つ単一の VM インスタンスのシンプルなデプロイである場合、Google Cloud Console でシンプルなデプロイ パッケージを直接作成できます。

複雑なデプロイのプロダクトの場合は、オープンソース mpdev ツールを使用して、Deployment Manager パッケージを作成し、機能を追加してカスタマイズすることもできます。

次の表に、シンプルなデプロイと複雑なデプロイの違いを示します。

導入 説明 パッケージの作成方法
シンプル 基本的なファイアウォール ルールが設定されている単一の VM インスタンス。 Google Cloud Console
複合施設 単一 VM またはマルチ VM の複雑なデプロイ。デプロイには、次のいずれかの機能が必要になることがあります。
  • 割り当てで CPU と GPU をチェックし、ユーザーが割り当て要件を超えたプロダクトをデプロイできないようにします。
  • Deployment Manager ページでの動的な料金更新。
  • 共有 Virtual Private Cloud(VPC)のサポート。
  • 複数のネットワーク インターフェース カードを備えた VM のサポート。
  • ユーザーが選択したゾーンで使用できないマシンタイプ、GPU、またはサブネットワークを選択できないようにする機能。
mpdev ツール

どのデプロイ オプションがプロダクトに適しているかわからない場合は、Google パートナー エンジニアにご相談ください。

始める前に

  1. デプロイで Terraform が使用されていないか、Terraform との依存関係がないことを確認します。

  2. mpdev ツールを使用してデプロイ パッケージを作成する場合は、次の手順を行います。

    1. marketplace-tools リポジトリの手順に沿って、mpdev ツールをインストールします。
    2. Google Cloud SDK をダウンロードします。

デプロイ パッケージを作成して送信する

次のセクションでは、デプロイ パッケージを作成し、審査を受けるために Google に提出する方法について説明します。

次のいずれかの方法でデプロイ パッケージを作成します。

Google Cloud Console を使用してデプロイ パッケージを作成する

Google Cloud Console を使用してシンプルなデプロイ パッケージを作成し、送信するには:

パートナー ポータル

  1. パートナー ポータルに移動し、プロダクトのリストからプロダクトを選択します。
  2. [Deployment Package] の横にある [Edit] をクリックします。
  3. [パッケージを生成] を選択して、[続行] をクリックします。
  4. [プロジェクト] と [イメージ] のプルダウンを使用して VM イメージを選択し、[続行] をクリックします。
  5. [最小マシンタイプ] と [デフォルトのマシンタイプ] の設定を選択して、[続行] をクリックします。
  6. 顧客が取るべきデプロイ後の次のステップを追加して、[続行] をクリックします。
  7. ファイアウォール ルールと、該当する場合はその他のネットワーク オプションを設定して、[続行] をクリックします。
  8. サイトまたは管理 URL を宣言することを選択できます。プロダクトにログインが必要な場合は、ソリューションを送信するときにログインの詳細を設定できます。[Continue] をクリックします。
  9. [パッケージのコンテンツを一覧表示] で、VM イメージのオペレーティング システムの [オペレーティング システム名] と [OS バージョン] を選択します。次に、プロダクトの一部として含まれるソフトウェアの追加部分ごとに、[名前] と [バージョン] を追加できます。パッケージのコンテンツをすべてリストしたら、[続行] をクリックします。
  10. 前の手順を完了すると、ソリューション パッケージが [確認] に表示されます。ソリューション パッケージをダウンロードするか、[JSON を編集] をクリックして手動で変更できます。[保存] をクリックしてパッケージを保存し、ソリューションに戻ります。

mpdev を使用してデプロイ パッケージを作成する

このセクションでは、mpdev ツールを使用してデプロイ パッケージを作成し、パッケージを送信して審査を受ける方法について説明します。

mpdev ツールは、Deployment Manager の Autogen を使用して、デプロイ パッケージ用の Deployment Manager テンプレートを生成します。このツールは、VM プロダクトの構成入力を含む Autogen の仕様に基づいて、デプロイ パッケージを生成します。

mpdev を使用してデプロイ パッケージを作成するには、Producer Portal とパートナー ポータルのどちらを使用してプロダクトを Google Cloud Marketplace に統合するかによって、次の手順を使用します。

Producer Portal

デプロイ パッケージを生成して送信する大まかな流れは次のとおりです。

  1. デプロイ パッケージへのアクセスを保存および管理するための Cloud Storage バケットの作成と構成を行います。
  2. VM プロダクトのイメージの詳細とデプロイ要件を含む Autogen 仕様を作成します。
  3. Autogen 仕様に基づいてデプロイ パッケージを生成し、パッケージを Cloud Storage バケットにアップロードします。
  4. Producer Portal で審査のためにデプロイ パッケージを送信します。デプロイ パッケージを送信してから Google がパッケージを審査し、承認するまでには最大で 2 週間かかります。

以下のセクションでは、デプロイ パッケージを生成して送信する手順を説明します。

Cloud Storage バケットを作成する

Producer Portal で使用するのと同じパブリックの Google Cloud プロジェクトで Cloud Storage バケットを作成し、次のようにバケットを構成する必要があります。

Cloud Storage バケットを作成して構成するには、次の gsutil コマンドを実行します。

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

ここで、YOUR_BUCKET_NAME は新しいバケットに付ける名前で、命名要件の対象となります。

Autogen 仕様を作成する

Autogen 仕様を作成するには、marketplace-tools リポジトリで single VM example を初期 Autogen 仕様として使用し、VM の構成の詳細を使用して仕様をカスタマイズすることをおすすめします。

より複雑なユースケースでは、一部の統合開発環境(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

  1. VM の構成の詳細で仕様を更新するには、次の情報で configurations.yaml ファイルを変更します。

    • VM イメージの名前。
    • VM イメージをホストするパブリック Google Cloud プロジェクトの ID。これは Producer Portal で使用するのと同じプロジェクトです。

    configurations.yaml ファイル内の VM イメージと Google Cloud プロジェクトのフィールドを更新する手順については、single VM exampleREADME.md ファイルをご覧ください。

  2. プロダクトに必要な場合は、さらに 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
    

生成されたデプロイ パッケージが zip 圧縮され、バケットにアップロードされます。

テンプレートが正しく構成されていることを確認するために、次のコマンドを実行してデプロイを作成します。

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

デプロイ パッケージを審査のために送信する

デプロイ パッケージを作成したら、Google Cloud Marketplace チームがパッケージを確認して承認できるように、パッケージを Producer Portal に送信する必要があります。

審査を受けるためにデプロイ パッケージを提出するには:

  1. Google Cloud Console で Producer Portal を開きます。

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

    YOUR_PUBLIC_PROJECT_ID を、Google Cloud Marketplace 用に作成したパブリック プロジェクトの ID(my-organization-public など)に置き換えます。

  2. プロダクトのリストで貴社のプロダクト名をクリックします。

  3. プロダクトの [概要] ページで [デプロイ パッケージ] セクションに移動し、[編集] をクリックします。

  4. [Specify your GCS object location] で、以前にアップロードしたデプロイ パッケージ オブジェクトを選択します。

  5. [Validate] をクリックします。検証プロセスには最大 2 時間かかります。完了後に画面を閉じることもできます。

  6. Producer Portal がデプロイ パッケージを正常に読み取ったら、[デプロイのプレビュー] をクリックして、VM 構成の表示方法を確認できます。

  7. 検証が正常に完了したら、[送信] をクリックして審査するパッケージを送信します。

  8. オープンソース コンプライアンスの審査をすでに送信している場合は、オープンソース ライセンスの使用を変更していないことを証明するラジオボタンをクリックします。

パートナー ポータル

Autogen 仕様を作成する

marketplace-tools リポジトリで single VM example を使用して、初期の Autogen 仕様を作成することをおすすめします。single VM example から仕様を作成するには、次のコマンドを実行します。

mpdev pkg get https://github.com/GoogleCloudPlatform/marketplace-tools.git/examples/deployment-manager/autogen/singlevm MY_PACKAGE

ダウンロードしたサンプルの README.md ファイルに記載されている次の手順に従います。この手順には、プロダクトに固有の configurations.yaml ファイルのフィールドの編集も含まれます。これらの手順が完了したら、編集した mpdev 構成で mpdev apply を実行して Deployment Manager パッケージを生成します。

configurations.yamlDeploymentSpec の下にあるフィールドの詳細については、Autogen リファレンス ドキュメントをご覧ください。

examples フォルダにある他のサンプル構成もご覧ください。

承認認証情報を作成する

configurations.yamlDeploymentSpec で複数の passwords を指定できます。インスタンス メタデータ サーバーからパスワードを取得し、デプロイ後のインターフェースで表示できます。

デプロイ パッケージを生成する

以下のサンプル コマンドでは、MY_PACKAGE/configurations.yaml の仕様を読み取り、MY_PACKAGE/configurations.yaml で指定した場所に zip ファイルを出力しています。

mpdev apply -f MY_PACKAGE/configurations.yaml

デプロイ パッケージを作成したら、こちらの手順に沿って、デプロイ パッケージをパートナー ポータルにアップロードします。

カスタマー ビューからのデプロイ パッケージ

以降では、自動生成された標準ソリューション パッケージに基づくプロダクトについて、プロダクトをデプロイするときに顧客に表示される画面レイアウトについて説明します。

パッケージのデプロイに関するカスタマー ビュー

次のスクリーンショットの左側には、標準のユーザー入力要素が表示されています。ゾーン、マシンタイプ、ディスク オプション、ネットワーク オプションなどがあります。

顧客のデプロイに複数のネットワーク インターフェース カードが必要な場合は、[ネットワーク インターフェースを追加] をクリックして、ネットワーク インターフェースを追加できます。

プロダクトをデプロイするには、顧客が入力フィールドに記入して、[デプロイ] をクリックする必要があります。

デプロイされたパッケージのカスタマー ビュー

次の画像は、プロダクトが正常にデプロイされた後、顧客にどのように表示されるかを示しています。

次のスクリーンショットの右側には、標準の出力要素が表示されています。サイトのアドレス、仮の管理者パスワード、インスタンスの情報などがあります。