Terraform プランを使用して Google Cloud Platform Windows インスタンスをデプロイし、Azure Arc に接続する
この記事では、指定された Terraform プランを使用して Windows Server Google Cloud Platform (GCP) インスタンスをデプロイし、Azure Arc 対応サーバー リソースとして接続するためのガイダンスを提供します。
前提条件
Azure Arc Jumpstart リポジトリを複製します。
git clone https://github.com/microsoft/azure_arc.git
バージョン 2.7 以降の Azure CLI をインストールするか、更新します。 現在インストールされているバージョンを確認するには、次のコマンドを使用してください。
az --version
課金が有効になっている Google Cloud Platform アカウント:無料試用版アカウントを作成します。 Windows Server 仮想マシンを作成するには、アカウントをアップグレードして課金を有効にする必要があります。 メニューから [Billing](お支払い) を選択し、右下にある [Upgrade](アップグレード) を選択します。
免責事項: 予期しない料金を回避するには、この記事の最後にある「デプロイの削除」セクションに従ってください。
Azure サービス プリンシパルを作成します。
GCP 仮想マシンを Azure Arc に接続するには、共同作成者ロールが割り当てられた Azure サービス プリンシパルが必要です。 これを作成するには、Azure アカウントにサインインして、次のコマンドを実行します。 このコマンドは、Azure Cloud Shell 内で実行することもできます。
az login az account set -s <Your Subscription ID> az ad sp create-for-rbac -n "<Unique SP Name>" --role contributor --scopes "/subscriptions/<Your Subscription ID>"
次に例を示します。
az ad sp create-for-rbac -n "http://AzureArcGCP" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
出力は次のようになります。
{ "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX", "displayName": "http://AzureArcGCP", "password": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX", "tenant": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX" }
Note
サービス プリンシパルのスコープを、特定の Azure サブスクリプションとリソース グループに限定することを強くお勧めします。
新しい GCP プロジェクトを作成する
Google API コンソールに移動し、お使いの Google アカウントでサインインします。 ログインしたら、
Azure Arc demo
という名前の新しいプロジェクトを作成します。 作成した後は、プロジェクト ID を必ずコピーしてください。通常、これはプロジェクト名とは異なるためです。新しいプロジェクトが作成され、ページ上部にあるドロップダウン リストで選択されたら、そのプロジェクトに対して Compute Engine API のアクセスを有効にする必要があります。 [+ Enable APIs and Services](API とサービスを有効にする) をクリックし、"compute engine" を検索します。 次に、 [Enable](有効にする) を選択して、API アクセスを有効にします。
次に、Terraform で GCP プロジェクトのリソースを作成および管理するために使用されるサービス アカウント キーを設定します。 サービス アカウント キーの作成ページにアクセスします。 ドロップダウン リストから [新しいサービス アカウント] を選択し、名前を指定してから、プロジェクト、ロールとしての所有者、キーの種類としての JSON を順に選択し、 [作成] を選択します。 これにより、Terraform がリソースを管理するために必要なすべての資格情報を含む JSON ファイルがダウンロードされます。 ダウンロードした JSON ファイルを
azure_arc_servers_jumpstart/gcp/windows/terraform
ディレクトリにコピーします。
展開
Terraform プランを実行する前に、プランで使用される環境変数を設定し、エクスポートする必要があります。 これらの変数は、先ほど作成した Azure サービス プリンシパル、Azure サブスクリプションとテナント、GCP プロジェクト名に基づいています。
az account list
コマンドを使用して、Azure サブスクリプション ID とテナント ID を取得します。Terraform プランでは、Microsoft Azure と Google Cloud Platform の両方にリソースが作成されます。 次に、GCP 仮想マシンでスクリプトが実行され、Azure Arc エージェントと必要なすべてのアーティファクトがインストールされます。 このスクリプトには、GCP および Azure 環境に関する特定の情報が必要です。
scripts/vars.sh
を編集し、各変数を適切な値で更新します。TF_VAR_subscription_id
= お使いの Azure サブスクリプション IDTF_VAR_client_id
= お使いの Azure サービス プリンシパル アプリケーション IDTF_VAR_client_secret
= お使いの Azure サービス プリンシパル パスワードTF_VAR_tenant_id
= お使いの Azure テナント IDTF_VAR_gcp_project_id
= GCP プロジェクト IDTF_VAR_gcp_credentials_filename
= GCP 資格情報 JSON ファイル名
CLI から、クローンされたリポジトリの
azure_arc_servers_jumpstart/gcp/windows/terraform
ディレクトリに移動します。下に示すように、source コマンドを使って
scripts/vars.sh
を実行することにより、編集した環境変数をエクスポートします。 Terraform ではプランを適切に実行するために、これらを設定する必要があります。source ./scripts/vars.sh
Terraform AzureRM プロバイダーをダウンロードする
terraform init
コマンドを実行します。次に、
terraform apply --auto-approve
コマンドを実行して、プランが終了するまで待ちます。 Terraform スクリプトが完了すると、GCP Windows Server 2019 VM がデプロイされ、スクリプト (VM に Azure Arc エージェントをダウンロードして、VM を新しい Azure Arc 対応サーバーとして新しい Azure リソース グループ内に接続する) が開始されます。 エージェントがプロビジョニングを完了するまでに数分かかりますので、休憩しましょう。数分後に Azure portal を開くと、
arc-gcp-demo
リソース グループに移動できるようになっているはずです。 GCP に作成された Windows Server 仮想マシンがリソースとして表示されます。
半自動デプロイ (省略可能)
Terraform プランは、VM が最初に起動されたときに PowerShell スクリプトを実行して Azure Arc エージェントを自動的にインストールし、VM を管理対象リソースとして Azure に接続します。
実際の登録プロセスのデモまたは制御を行う場合は、次の手順を行います。
terraform apply
コマンドを実行する前にmain.tf
を開き、windows-startup-script-ps1 = local-file.install_arc_agent-ps1.content
行をコメント アウトしてファイルを保存します。上記の指示に従って
terraform apply --auto-approve
を実行します。GCP コンソールを開き、コンピューティング インスタンス ページに移動して、作成した VM を選択します。
[Set Password](パスワードの設定) を選択し、ユーザー名を指定して VM のユーザーとパスワードを作成します。
GCP コンソールの VM ページで [RDP] ボタンを選択して仮想マシンに RDP 接続し、先ほど作成したユーザー名とパスワードでサインインします。
ログインしたら、管理者として PowerShell ISE を開きます。 PowerShell ISE の x86 バージョンではなく、x64 バージョンを実行していることを確認してください。 開いたら、[File](ファイル)> > [New](新規作成) を選択して、空の
.ps1
ファイルを作成します。 次に、./scripts/install_arc_agent.ps1
の内容全体を貼り付けます。 [play(実行)] ボタンをクリックして、スクリプトを実行します。 完了すると、マシンが正常にオンボードしたことを示す出力が表示されるはずです。
デプロイの削除
このデモの一部として作成したすべてのリソースを削除するには、下のように terraform destroy --auto-approve
コマンドを使用します。
または、GCP コンソールから直接 GCP VM を削除することもできます。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示