VM の Terraform デプロイ モジュールを作成する
このページでは、仮想マシン(VM)と VM の Terraform デプロイ モジュールを作成する方法について説明します。
ライセンス付き VM イメージを作成する
- 開発用 VM に影響しないようにするには、次の gcloud コマンドを実行して、VM で使用されているディスクのコピーを作成します。
gcloud compute disks create CLONE_DISK \ --description="cloned disk" \ --source-disk=projects/PROJECT/zones/ZONE/disks/SOURCE_VM_DISK
- VM のクローンを作成します。詳細については、既存の VM と同様の VM を作成するをご覧ください。
- [詳細オプション] セクションで、クローンを作成したディスクをアタッチします。
- VM を作成します。
- この VM でサーバーが実行されていることを確認します。起動スクリプトにより、VM が実行されていることを確認します。
- Docker でコネクタ サービスを停止して削除します。
- ホーム ディレクトリと、サーバーの実行に不要なファイルを削除します。同じディスクが VM イメージの作成に使用され、後でユーザーがアクセスできるようになります。この VM には、サービスの実行に必要なライブラリのみが必要です。
- VM を編集し、削除ルールを選択して [ディスクを保持] にします。
- この VM を削除します。
- ライセンス付きイメージを作成するには、プロデューサー ポータルからライセンスを取得します。Producer Portal にアクセスします。
- 新しい仮想マシン プロダクトを作成します。[Deployment パッケージ] セクションに移動し、VM ライセンスをコピーします。
- ライセンス付きの VM イメージを作成するには、次のコマンドを実行します。
gcloud compute images create VM_IMAGE_NAME \ --project PUBLIC_PROJECT_NAME \ --source-disk projects/DEV_PROJECT_NAME/zones/ZONE/disks/SOURCE_VM_DISK \ --licenses LICENSE \ --description VM_IMAGE_DESCRIPTION
詳細については、VM の構築をご覧ください。
Terraform デプロイ モジュールを作成する
Marketplace には、Marketplace に VM イメージをデプロイするための Terraform モジュールを生成する Autogen ツールが用意されています。
このツールは、Autogen proto 定義を使用してデプロイメントを生成します。詳細については、構成の例をご覧ください。
- ソリューションの詳細を追加します。
- コネクタの場合は、VM を使用してモジュールを作成します。公開プロジェクトのプロジェクト名、VM イメージ名、イメージのラベルを入力します。
- デフォルトのマシンタイプとして n2d-standard-2 を使用し、最小 CPU を 2、RAM を 8 GB にします。N2d-standard は、中程度のトラフィック量のウェブサーバーに最適です。デフォルトの VM は 2 コアに設定できます。トラフィックが増加することが見込まれる場合は、Marketplace から VM を作成するときに変更できます。マシンタイプ別の料金については、VM インスタンスの料金をご覧ください。
machineType: # Check http://cloud.google.com/compute/docs/machine-types for all available types defaultMachineType: gceMachineType: n2d-standard-2 # Minimum CPU and memory constraints for the machine type to run your solution properly minimum: cpu: 2 ramGb: 8
- デフォルトのディスクタイプとして pd-standard を使用します。
bootDisk: diskType: defaultType: pd-standard
- 起動スクリプトを autogen 構成に追加します。起動スクリプトを文字列に変換して、bashScriptContent に追加します。
gceStartupScript: bashScriptContent:
- VM の作成時にお客様から入力として取得する入力フィールドを定義します。
deployInput: sections: # The place int he Deployment Manager config that this section will appear. More details in deployment_package_autogen_spec.proto - placement: CUSTOM_TOP name: CONNECTOR_SETTINGS title: Connectors settings description: Connectors settings tooltip: Setting with which connector VM will be running # List of input fields that this section has fields: - required: false name: TEST_DATA title: Test Data description: Test data tooltip: random data for testing string_box: {} - required: false name: PORT title: Port to run service tooltip: Port to run connector service string_box: {} - required: false name: LOG_LEVEL title: Log level description: Log level for the web service. Allowed values are DEBUG, INFO, WARNING, ERROR. Default is INFO string_box: {}
プレースメントは CUSTOM_TOP のままで、名前は CONNECTOR_SETTINGS にします。
フィールドと、それらに必要な入力の種類を定義します。この例では、Marketplace コネクタのお客様には [Test Data] フィールドと [Port to run service] フィールドが表示されます。
- Compute Engine メタデータ アイテムを定義します。VM メタデータを定義するときに、入力フィールドの名前をメタデータキーにマッピングします。
gce_metadata_items: - key: CONNECTOR_ENV_PORT value_from_deploy_input_field: PORT - key: CONNECTOR_ENV_TEST_DATA value_from_deploy_input_field: TEST_DATA - key: CONNECTOR_ENV_LOG_LEVEL value_from_deploy_input_field: LOG_LEVEL
- デプロイ後にお客様に表示される手順の詳細を追加します。
postDeploy: # List of suggested action items for users, after deployment is successful actionItems: - heading: Create the Private service attachment description: Now the connector service is running on the VM, please create the PSC service attachment to create the connection. Follow https://cloud.google.com/integration-connectors/docs/configure-psc for the detailed guide. - heading: Create the connection description: After creating the connectors endpoint attachment, use the endpoint attachment to create a connection to the partner connector.
- autogen を設定するには、次のコマンドを実行します。
alias autogen='docker run \ --rm \ --workdir /mounted \ --mount type=bind,source="$(pwd)",target=/mounted \ --user $(id -u):$(id -g) \ gcr.io/cloud-Marketplace-tools/dm/autogen' autogen --help
- Terraform モジュールを生成するには、次のコマンドを実行します。
mkdir solution_folder autogen \ --input_type YAML \ --single_input example-config/solution.yaml \ --output_type PACKAGE \ --output solution_folder
solution_folder には terraform モジュールが含まれています。このモジュールは、Marketplace で商品を公開する際に使用します。
solutionInfo: name:packagedSoftwareGroups: - type: SOFTWARE_GROUP_OS components: - name: Ubuntu version: 16.04 LTS - components: - name: Apache version: 2.4.23
次のステップ
- VM イメージを送信して承認を受ける方法を確認する。