クイック スタート: Azure Export for Terraform を使用して Azure リソースを HCL コード内にエクスポートする

記事「Azure Export for Terraform を使用して最初のリソースをエクスポートする」では、Azure Export for Terraform を使用して Azure リソースをローカル状態ファイルにエクスポートする方法について説明します。 この記事では、Azure リソースから Terraform 構成ファイルを生成する方法について説明します。

  • Azure CLI または Azure PowerShell を使用して、テスト用の Azure リソース グループを作成します。
  • Azure CLI または Azure PowerShell を使用して、テスト用の Linux 仮想マシンを作成します。
  • リソース グループと仮想マシンを Azure から HCL ファイルにエクスポートします。
  • ローカル状態が Azure のリソース状態と一致することをテストします。

前提条件

Azure リソースを作成しテストする

Linux VM を作成します。

  1. az group create を実行して、Azure リソース グループを作成します。

    az group create --name myResourceGroup --location eastus
    
  2. az vm create を実行して、仮想マシンを作成します。

    az vm create \
      --resource-group myResourceGroup \
      --name myVM \
      --image Debian11 \
      --admin-username azureadmin \
      --generate-ssh-keys \
      --public-ip-sku Standard
    

hcl 専用フラグについて理解する

Azure Export for Terraform ではフラグがサポートされています - --hcl-only - これにより、エクスポートされたリソースから次のファイルが生成されます。

  • 生成された .tf HCL ファイル。
  • マッピング ファイル aztfexportResourceMapping.json
  • スキップされたリソースは aztfexportSkippedResources.txt に一覧表示されます。

この --hcl-only フラグは、エクスポートに使用されるすべてのプライマリ エクスポート コマンドでサポートされています。

  • リソース
  • resource-group
  • query
  • マッピングファイル

使用可能な Azure Export for Terraform コマンドを表示するには、次のコマンドを実行します。

aztfexport --help

この --hcl-only フラグは、状態が不要なシナリオや、状態を生成する必要があるかどうかが不明なシナリオで役立ちます。 生成されたすべての構成を状態にエクスポートするには、aztfexport mapping-file を実行します。

ヒント

--hcl-only フラグを使用する場合は、エクスポート ステージ中に現在の状態に不要な変更を加えないように、空のディレクトリをターゲットにします。

Azure リソースをエクスポートする

aztfexport ツールは、対話型モードと非対話型モードの 2 つのモードのいずれかで実行できます。 このデモでは、非対話型モードを使用します。

  1. テストするディレクトリを作成します。

  2. コマンド プロンプトを開き、新しいディレクトリに移動します。

  3. aztfexport resource-group を実行して、myResourceGroup と名付けられたリソース グループ名をエクスポートします。

    aztfexport resource-group --non-interactive --hcl-only myResourceGroup
    

Note

Azure Export for Terraform の実行が完了するまでに数分かかる場合があります。

結果を確認する

ツールによる Azure リソースのエクスポートが完了したら、Azure Export for Terraform を実行したディレクトリで次のファイルを確認します。

  • main.tf には、エクスポートされたリソースを定義する HCL コードが含まれています。
  • aztfexportResourceMapping.json には、Azure/Terraform マッピングが含まれています。 マッピング ファイルには、エクスポートされた Azure リソースごとに、Azure リソース ID、Terraform リソースの種類、および Terraform リソース名の情報が含まれています。 マッピング ファイルの内容は、エクスポート プロセス中に Azure Export for Terraform で表示される内容をミラーリングします。
  • aztfexportSkippedResources.txt には、スキップされたリソースの一覧が含まれています。 この例では、このファイルは表示されません。

リソースをクリーンアップする

この記事で作成したリソースが不要になったら、次の手順を実行してください。

  1. この記事の Terraform ファイルを含むディレクトリに移動します。

  2. terraform destroy を実行します。

    terraform destroy
    

次のステップ