Terraform プランを使用して VMware Ubuntu 仮想マシンをデプロイして Azure Arc に接続する

この記事では、提供された Terraform プランを使用して Ubuntu サーバー、VMware vSphere 仮想マシンをデプロイし、これを Azure Arc 対応サーバー リソースとして接続する手順を示します。

前提条件

  1. Azure Arc Jumpstart リポジトリを複製します。

    git clone https://github.com/microsoft/azure_arc.git
    
  2. バージョン 2.7 以降の Azure CLI をインストールするか、更新します。 現在インストールされているバージョンを確認するには、次のコマンドを使用してください。

    az --version
    
  3. 0.12 以降の Terraform をインストールします

  4. vSphere Web クライアントのテンプレートから仮想マシンをデプロイするためのアクセス許可を持つ VMware vCenter Server ユーザー。

  5. Azure サービス プリンシパルを作成します。

    VMware vSphere 仮想マシンを 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://AzureArcServers" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
    

    出力は次のようになります。

    {
      "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "displayName": "http://AzureArcServers",
      "password": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "tenant": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    }
    

    Note

    サービス プリンシパルのスコープを、特定の Azure サブスクリプションとリソース グループに限定することを強くお勧めします。

Ubuntu サーバー VMware vSphere VM テンプレートの準備

このガイドを使用して Ubuntu サーバー VM をデプロイしてそれを Azure Arc に接続する前に、VMware vSphere テンプレートが必要です。 この記事では、VMware vSphere 6.5 以降を使用してこのようなテンプレートを簡単に作成する方法について説明します。

Note

Ubuntu サーバー VM テンプレートを既にお持ちの場合でも、このガイドを参照用に使用する必要があります。

デプロイ

Terraform プランを実行する前に、プランで使用される環境変数を設定する必要があります。 これらの変数は、先ほど作成した Azure サービス プリンシパル、Azure サブスクリプションとテナント、VMware vSphere の資格情報に基づいています。

  1. az account list コマンドを使用して、Azure サブスクリプション ID とテナント ID を取得します。

  2. Terraform プランでは、Microsoft Azure と VMware vSphere の両方にリソースが作成されます。 次に、仮想マシンでスクリプトが実行され、Azure Arc エージェントと必要なすべてのアーティファクトがインストールされます。 このスクリプトには、VMware vSphere および Azure 環境に関する特定の情報が必要です。 scripts/vars.sh を編集し、各変数を適切な値で更新します。

    • TF_VAR_subscription_id = お使いの Azure サブスクリプション ID
    • TF_VAR_client_id = お使いの Azure サービス プリンシパル名
    • TF_VAR_client_secret = お使いの Azure サービス プリンシパル パスワード
    • TF_VAR_tenant_id = お使いの Azure テナント ID
    • TF_VAR_resourceGroup = Azure リソース グループ名
    • TF_VAR_location = Azure リージョン
    • TF_VAR_vsphere_user = vCenter 管理者ユーザー名
    • TF_VAR_vsphere_password = vCenter 管理者パスワード
    • TF_VAR_vsphere_server = vCenter サーバー FQDN/IP
    • TF_VAR_admin_user = OS 管理者ユーザー名
    • TF_VAR_admin_password = OS 管理者パスワード
  3. CLI から、クローンされたリポジトリの azure_arc_servers_jumpstart/vmware/ubuntu/terraform ディレクトリに移動します。

  4. 下に示すように、source コマンドを使って scripts/vars.sh を実行することにより、編集した環境変数をエクスポートします。 Terraform ではプランを適切に実行するために、これらを設定する必要があります。 このスクリプトは、Terraform のデプロイの一部として、仮想マシンでも自動的にリモートで実行されることに注意してください。

    source ./scripts/vars.sh

  5. エクスポートした TF_VAR 環境変数に加えて、terraform.tfvars の Terraform 変数を VMware vSphere 環境に合わせて編集します。

    A screenshot of the TF_VAR environment variables

  6. Terraform AzureRM、local、および vSphere プロバイダーをダウンロードする terraform init コマンドを実行します。

    A screenshot of the terraform init command.

  7. terraform apply --auto-approve コマンドを実行して、プランが終了するまで待ちます。

  8. Terraform のデプロイが完了すると、新しい Ubuntu サーバー VM が稼働し、新しく作成された Azure リソース グループ内に Azure Arc 対応サーバー リソースとして投影されます。

    A screenshot of terraform apply completed.

    A screenshot of a new VMware vSphere Ubuntu server virtual machine.

    A screenshot of an Azure Arc-enabled server in an Azure resource group.

    Another screenshot of an Azure Arc-enabled server in an Azure resource group.

デプロイの削除

  • 最も簡単な方法は、Azure portal 経由で Azure Arc リソースを削除することです。リソースを選択して削除するだけです。 さらに、VMware vSphere VM を削除します。

    A screenshot of an Azure Arc-enabled server being deleted.

    インスタンスを手動で削除する場合は、Terraform プランによって作成された install_arc_agent.sh も削除する必要があります。

  • 環境全体を破棄する場合は、以下のように terraform destroy --auto-approve コマンドを使用します。

    A screenshot of the terraform destroy command.