Google Cloud Marketplace で提供される仮想マシン(VM)プロダクトは、Compute Engine で実行できるカスタム VM インスタンスです。Compute Engine のコンセプトの概要については、Compute Engine のドキュメントをご覧ください。
Google Cloud Marketplace の一部の VM プロダクトは、インフラストラクチャのプロビジョニングと管理を行うためのオープンソース ツールである Terraform を使用したコマンドライン インターフェース(CLI)によるデプロイをサポートしています。Terraform の詳細については、Terraform を使ってみるをご覧ください。
概要
このページでは、Terraform を使用して CLI で VM プロダクトをデプロイする手順について説明します。全体の流れは次のとおりです。
プロダクトの Google Cloud Marketplace 掲載情報の関連するセクションにアクセスします。
必要に応じて、コマンドラインでのデプロイに使用するサービス アカウントを選択または作成します。
必要に応じて、サービス アカウントの権限借用を設定します。
Terraform 用に
gcloud
環境を構成します。VM プロダクトを CLI でデプロイするために使用する Terraform モジュールまたはコード スニペットをダウンロードします。
モジュールまたはコード スニペットを使用して、VM プロダクトをデプロイします。
[コマンドラインのデプロイ] タブに移動
CLI を使用して VM プロダクトのデプロイを開始するには:
Cloud Marketplace で、CLI でデプロイする VM プロダクトのプロダクト リスティング ページにアクセスします。
[起動] ボタンをクリックするか、[CLI を使用してデプロイ] をクリックして、[コマンドラインのデプロイ] タブに移動します。
(省略可)サービス アカウントを選択または作成する
[コマンドラインのデプロイ] タブで、コマンドラインでのデプロイに使用するサービス アカウントを選択または作成できます。コード スニペットの生成時に [コマンドラインのデプロイ] タブでサービス アカウントを選択または作成していない場合は、生成された Terraform スニペットを手動で編集してサービス アカウントを追加してから使用する必要があります。サービス アカウントの詳細については、サービス アカウントの作成と管理をご覧ください。
CLI を使用して Cloud Marketplace VM プロダクトをデプロイする場合、使用するサービス アカウントにCompute 管理者(roles/compute.admin
)の Identity and Access Management(IAM)のロールが必要です。
[コマンドラインのデプロイ] タブで新しいサービス アカウントを作成すると、Google Cloud Marketplace によって、このロールが新しいサービス アカウントに自動的に付与されます。[コマンドラインのデプロイ] タブで既存のサービス アカウントを選択した場合は、サービス アカウントにこのロールがあることを確認する必要があります。
サービス アカウントを選択または作成するには:
VM プロダクトの Google Cloud Marketplace リスティングの [コマンドラインのデプロイ] タブの [サービス アカウントの構成(省略可)] で、[構成] ボタンをクリックします。
[権限をリクエストするサービス アカウント] で、[既存のサービス アカウントを選択] か [新しいサービス アカウントを作成] をクリックします。
既存のサービス アカウントの選択
既存のサービス アカウントを選択するには:
[サービス アカウントを選択] で、使用するサービス アカウントを選択します。このリストには、Compute 管理者(
roles/compute.admin
)のロールを持つ既存のサービス アカウントがすべて含まれています。既存のどのサービス アカウントにも Compute 管理者(
roles/compute.admin
)のロールがない場合、リストは空です。リストが空の場合は、このロールを既存のサービス アカウントのいずれかに付与してからこのタブに戻るか、代わりに新しいサービス アカウントを作成します。[送信] ボタンをクリックします。
サービス アカウントを新規作成
新しいサービス アカウントを作成する手順は次のとおりです。
サービス アカウントの名前を選択し、[サービス アカウント名] フィールドに追加します。
サービス アカウントの ID を選択し、[サービス アカウント ID] フィールドに追加します。
[サービス アカウントの説明] フィールドに、サービス アカウントの説明を追加します。
[サービス アカウントを作成] ボタンをクリックします。
サービス アカウントを作成したら、IAM を使用してサービス アカウントのアクセス制御を管理できます。
(省略可)サービス アカウントの権限借用を設定する
コマンドラインでのデプロイへのアクセスを管理するには、サービス アカウントの権限借用を使用することをおすすめします。権限借用を使用する場合は、誰でもデプロイへのアクセスに使用できるサービス アカウント キーを作成する代わりに、特定のプリンシパルに対してサービス アカウント トークン作成者(roles/iam.serviceAccountTokenCreator
)の IAM ロールを付与または取り消すことによってアクセスを管理します。
サービス アカウントに対するロールの付与と取り消しの方法については、サービス アカウントに対するアクセス権の管理をご覧ください。サービス アカウントのなりすましについて詳しくは、サービス アカウントのなりすましをご覧ください。
Terraform の gcloud 環境を構成する
[コマンドラインのデプロイ] タブの [gcloud の構成] に、一連のコマンドが表示されます。Terraform 用の gcloud
環境を構成するには、表示されたコマンドをコピーして実行できます。
Terraform モジュールをダウンロードする
VM プロダクトの構成に応じて、CLI で、付属の Terraform モジュールまたは生成されたコード スニペットを使用して VM プロダクトをデプロイします。VM プロダクトのデプロイに付属のモジュールを使用するのか、それとも生成されたコード スニペットを使用するのかを確認するには、プロダクトの Cloud Marketplace 掲載情報の [コマンドライン デプロイ] タブにアクセスします。付属のモジュールを使用してプロダクトをデプロイする場合は、[ダウンロード] ボタンが表示されます。生成されたコード スニペットを使用してプロダクトをデプロイする場合は、[コードの生成] ボタンが表示されます。
付属のモジュールや生成されたコード スニペットをダウンロードするには、次の手順を行います。
含まれる Terraform モジュール
VM プロダクトの Cloud Marketplace 掲載情報の [コマンドラインのデプロイ] タブで [ダウンロード] ボタンをクリックします。これにより、使用する Terraform モジュールが入った zip ファイルがダウンロードされます。
ダウンロードした zip ファイルから Terraform モジュールを解凍します。
生成されたコード スニペット
VM プロダクトの Cloud Marketplace リスティングの [コマンドラインのデプロイ] タブで [コードを生成] ボタンをクリックします。これによってコード スニペットが生成され、コピーして Terraform で VM をデプロイするために使用できます。
生成されたコード スニペットをコピーするには、[クリップボードにコピー] をクリックします。
付属のモジュールまたは生成されたコード スニペットを使用して VM プロダクトをデプロイする
付属のモジュールまたは生成されたコード スニペットを使用して CLI で VM プロダクトをデプロイするには、次の操作を行います。
含まれる Terraform モジュール
ダウンロードした Terraform モジュールで、
README.md
ファイルを探します。README.md
ファイルに記載の、プロダクト固有の手順を行います。プロダクト固有の手順に沿って操作する際に問題が発生した場合は、必要に応じて次のコマンドを実行してモジュールのデプロイを試すことができます。
terraform init
terraform apply
生成されたコード スニペット
生成されたコード スニペットに、使用するサービス アカウントが含まれていることを確認します。コマンドラインでのデプロイ用にサービス アカウントを構成した場合は、生成されたコード スニペットにそのサービス アカウントの情報が含まれます。サービス アカウントを構成していない場合は、生成されたコード スニペットを編集して、使用するサービス アカウントを指定する必要があります。
Terraform をインストールしたマシンで
main.tf
という名前の新しいファイルを作成します。生成されたコード スニペットを必要に応じて編集し、作成した
main.tf
ファイルに貼り付けます。次のコマンドを実行します。
terraform init
terraform apply
次のステップ
VM プロダクトの CLI デプロイメントの管理については、VM プロダクトの CLI デプロイメントの管理をご覧ください。