チュートリアル:Azure Terraform Visual Studio Code 拡張機能の構成Tutorial: Configure the Azure Terraform Visual Studio Code extension

Azure Terraform Visual Studio Code 拡張機能を使用すると、エディターから Terraform を操作できます。The Azure Terraform Visual Studio Code extension enables you to work with Terraform from the editor. この拡張機能を使用して、Terraform 構成の作成、テスト、実行を行うことができます。With this extension, you can author, test, and run Terraform configurations. また、この拡張機能は、グラフを使ったリソースの視覚化もサポートしています。The extension also supports resource graph visualization.

この記事では、次のことについて説明します。In this article, you learn how to:

  • Terraform を使用して Azure サービスのプロビジョニングを自動化する。Automate the provisioning of Azure services using Terraform
  • Azure サービス用の Terraform Visual Studio Code 拡張機能をインストールして使用する。install and use the Terraform Visual Studio Code extension for Azure services.
  • Visual Studio Code を使用して、Terraform プランを記述、計画、実行する。Use Visual Studio Code to write, plan, and execute Terraform plans.

前提条件Prerequisites

開発環境の準備Prepare your dev environment

Git のインストールInstall Git

この記事の演習を完了するには、Git をインストールする必要があります。To complete the exercises in the article, you need to install Git.

HashiCorp Terraform のインストールInstall HashiCorp Terraform

HashiCorp の「Install Terraform (Terraform のインストール)」Web ページの手順に従います。このページでは、以下について説明しています。Follow the instructions on the HashiCorp Install Terraform webpage, which covers:

  • Terraform のダウンロードDownloading Terraform
  • Terraform のインストールInstalling Terraform
  • Terraform が正しくインストールされていることの確認Verifying Terraform is correctly installed

ヒント

ご自身の PATH システム変数の設定に関する手順に従ってください。Be sure to follow the instructions regarding setting your PATH system variable.

Node.js のインストールInstall Node.js

Cloud Shell で Terraform を使用するには、Node.js をインストールする必要があります (Node.js 6.0 以上)。To use Terraform in the Cloud Shell, you need to install Node.js 6.0+.

注意

Node.js がインストールされているかどうかを確認するには、ターミナル ウィンドウを開いて、「node -v」と入力します。To verify if Node.js is installed, open a terminal window and enter node -v.

GraphViz のインストールInstall GraphViz

Terraform 視覚化機能を使用するには、GraphViz をインストールする必要があります。To use the Terraform visualize function, you need to install GraphViz.

注意

GraphViz がインストールされているかどうかを確認するには、ターミナル ウィンドウを開いて、「dot -V」と入力します。To verify if GraphViz is installed, open a terminal window and enter dot -V.

Azure Terraform Visual Studio Code 拡張機能のインストールInstall the Azure Terraform Visual Studio Code extension

  1. Visual Studio Code を起動します。Launch Visual Studio Code.

  2. [拡張機能] を選択します。Select Extensions.

    拡張機能ボタン

  3. Marketplace の拡張機能の検索テキスト ボックスを使用して、Azure Terraform 拡張機能を検索します。Use the Search Extensions in Marketplace text box to search for the Azure Terraform extension:

    Marketplace での Visual Studio Code 拡張機能の検索

  4. [インストール] を選択します。Select Install.

    注意

    Azure Terraform 拡張機能の [インストール] を選択すると、Visual Studio Code によって Azure アカウントの拡張機能が自動的にインストールされます。When you select Install for the Azure Terraform extension, Visual Studio Code will automatically install the Azure Account extension. Azure アカウントは Azure Terraform 拡張機能の依存関係ファイルであり、Azure サブスクリプション認証および Azure 関連のコード拡張機能の実行に使用されます。Azure Account is a dependency file for the Azure Terraform extension, which it uses to perform Azure subscription authentications and Azure-related code extensions.

Visual Studio Code に Terraform 拡張機能がインストールされていることの確認Verify the Terraform extension is installed in Visual Studio Code

  1. [拡張機能] を選択します。Select Extensions.

  2. 検索テキスト ボックスに「@installed」と入力します。Enter @installed in the search text box.

    インストール済み拡張機能

Azure Terraform 拡張機能が、インストール済み拡張機能の一覧に表示されます。The Azure Terraform extension will appear in the list of installed extensions.

インストール済み Terraform 拡張機能

お使いの Cloud Shell 環境でサポートされているすべての Terraform コマンドを、Visual Studio Code 内から実行できるようになりました。You can now run all supported Terraform commands in your Cloud Shell environment from within Visual Studio Code.

演習 1:基本的な Terraform コマンドのチュートリアルExercise 1: Basic Terraform commands walk-through

この演習では、新しい Azure リソース グループをプロビジョニングする基本的な Terraform 構成ファイルを作成して実行します。In this exercise, you create and execute a basic Terraform configuration file that provisions a new Azure resource group.

テスト計画ファイルの準備Prepare a test plan file

  1. Visual Studio Code で、メニュー バーから [ファイル] > [新しいファイル] を選択します。In Visual Studio Code, select File > New File from the menu bar.

  2. ブラウザーで Terraform azurerm_resource_group ページに移動し、使用例コード ブロックのコードをコピーします。In your browser, navigate to the Terraform azurerm_resource_group page and copy the code in the Example Usage code block:

    使用例

  3. コピーしたコードを、Visual Studio Code で作成した新しいファイルに貼り付けます。Paste the copied code into the new file you created in Visual Studio Code.

    使用例コードの貼り付け

    注意

    リソース グループの name 値は変更できますが、この値はご自身の Azure サブスクリプションに対して一意である必要があります。You may change the name value of the resource group, but it must be unique to your Azure subscription.

  4. メニュー バーから [ファイル] > [名前を付けて保存] を選択します。From the menu bar, select File > Save As.

  5. [名前を付けて保存] ダイアログで、任意の場所に移動し、 [新しいフォルダー] を選択しますIn the Save As dialog, navigate to a location of your choice and then select New folder. (新しいフォルダーの名前を、 [新しいフォルダー] 以外のわかりやすい名前に変更してください)。(Change the name of the new folder to something more descriptive than New folder.)

    注意

    この例では、フォルダーに TERRAFORM-TEST-PLAN という名前を付けます。In this example, the folder is named TERRAFORM-TEST-PLAN.

  6. 新しいフォルダーが強調表示 (選択) されていることを確認し、 [開く] を選択します。Make sure your new folder is highlighted (selected) and then select Open.

  7. [名前を付けて保存] ダイアログで、ファイルの既定の名前を main.tf に変更します。In the Save As dialog, change the default name of the file to main.tf.

    main.tf として保存

  8. [保存] を選択します。Select Save.

  9. メニュー バーで、 [ファイル] > [フォルダーを開く] を選択します。In the menu bar, select File > Open Folder. 作成した新しいフォルダーに移動し、選択します。Navigate to and select the new folder you created.

Terraform init コマンドの実行Run Terraform init command

  1. Visual Studio Code を起動します。Launch Visual Studio Code.

  2. Visual Studio Code のメニュー バーから、 [ファイル] > [フォルダーを開く] を選択し、main.tf ファイルを見つけて選択します。From the Visual Studio Code menu bar, select File > Open Folder... and locate and select your main.tf file.

    main.tf ファイル

  3. メニュー バーで、 [表示] > [コマンド パレット] > [Azure Terraform:Init] の順に選択します。From the menu bar, select View > Command Palette... > Azure Terraform: Init.

  4. 確認のメッセージが表示されたら [OK] を選択します。When the confirmation appears, select OK.

    Cloud Shell を開きますか、と尋ねるメッセージ

  5. 新しいフォルダーから初めて Cloud Shell を起動すると、Web アプリケーションを作成するよう求められます。The first time you launch Cloud Shell from a new folder, you're prompted to create a web application. [Open (開く)] を選択します。Select Open.

    初めての Cloud Shell の起動

  6. [Welcome to Azure Cloud Shell](Azure Cloud Shell へようこそ) ページが開きます。The Welcome to Azure Cloud Shell page opens. Bash または PowerShell を選択します。Select Bash or PowerShell.

    Azure Cloud Shell へようこそ

    注意

    この例では、Bash (Linux) が選択されています。In this example, Bash (Linux) was selected.

  7. Azure ストレージ アカウントをまだ設定していない場合は、次の画面が表示されます。If you have not already set up an Azure storage account, the following screen appears. [Create storage](ストレージの作成) を選択します。Select Create storage.

    ストレージがマウントされていません

  8. Azure Cloud Shell によって、前に選択したシェルが起動され、先ほど作成されたクラウド ドライブに関する情報が表示されます。Azure Cloud Shell launches in the shell you previously selected and displays information for the cloud drive it just created for you.

    クラウド ドライブが作成されました

  9. ここで Cloud Shell を終了できますYou may now exit the Cloud Shell

  10. メニュー バーから、 [表示] > [コマンド パレット] > [Azure Terraform: init] を選択します。From the menu bar, select View > Command Palette > Azure Terraform: init.

    Terraform が正常に初期化されました

プランの視覚化Visualize the plan

先ほどこのチュートリアルの中で GraphViz をインストールしました。Earlier in this tutorial, you installed GraphViz. Terraform では、構成または実行プランを視覚化するために GraphViz を使用できます。Terraform can use GraphViz to generate a visual representation of either a configuration or execution plan. この機能は、Azure Terraform Visual Studio Code 拡張機能の visualize コマンドによって実装されます。The Azure Terraform Visual Studio Code extension implements this feature via the visualize command.

  • メニュー バーで、 [表示] > [コマンド パレット] > [Azure Terraform:Visualize] の順に選択します。From the menu bar, select View > Command Palette > Azure Terraform: Visualize.

    プランの視覚化

Terraform plan コマンドの実行Run Terraform plan command

Terraform plan コマンドは、一連の変更に対する実行プランが意図したとおりに動作するかどうかの確認に使用されます。The Terraform plan command is used to check whether the execution plan for a set of changes will do what you intended.

注意

Terraform plan によって、実際の Azure リソースに変更が行われることはありません。Terraform plan does not make any changes to your real Azure resources. ご自身のプランに含まれる変更を実際に行うには、Terraform apply コマンドを使用します。To actually make the changes contained in your plan, we use the Terraform apply command.

  • メニュー バーから、 [表示] > [コマンド パレット] > [Azure Terraform: plan] を選択します。From the menu bar, select View > Command Palette > Azure Terraform: plan.

    Terraform プラン

Terraform apply コマンドの実行Run Terraform apply command

Terraform plan の結果に満足したら、apply コマンドを実行できます。After being satisfied with the results of Terraform plan, you can run the apply command.

  1. メニュー バーから、 [表示] > [コマンド パレット] > [Azure Terraform: apply] を選択します。From the menu bar, select View > Command Palette > Azure Terraform: apply.

    terraform apply

  2. yes」と入力します。Enter yes.

    Terraform apply、yes

目的の Terraform プランが実行されていることの確認Verify your Terraform plan was executed

目的の新しい Azure リソース グループが正常に作成されたかどうかを確認するには:To see if your new Azure resource group was successfully created:

  1. Azure portal を開きます。Open the Azure portal.

  2. 左側のナビゲーション ウィンドウで、 [リソース グループ] を選択します。Select Resource groups in the left navigation pane.

    新しいリソースの確認

新しいリソース グループが [名前] 列に表示されています。Your new resource group should be listed in the NAME column.

注意

この Azure portal ウィンドウは開いておいてください。次の手順で使用します。You may leave your Azure Portal window open for now; we will be using it in the next step.

Terraform destroy コマンドの実行Run Terraform destroy command

  1. メニュー バーから、 [表示] > [コマンド パレット] > [Azure Terraform: destroy] を選択します。From the menu bar, select View > Command Palette > Azure Terraform: destroy.

    Terraform destroy

  2. yes」と入力します。Enter yes.

    Terraform destroy、yes

目的のリソース グループが破棄されていることの確認Verify your resource group was destroyed

新しいリソース グループが Terraform によって正常に破棄されていることを確認するには:To confirm that Terraform successfully destroyed your new resource group:

  1. Azure portal の [リソース グループ] ページで、 [更新] を選択します。Select Refresh on the Azure portal Resource groups page.

  2. 目的のリソース グループは表示されません。Your resource group will no longer be listed.

    リソース グループが破棄されていることの確認

演習 2:Terraform compute モジュールExercise 2: Terraform compute module

この演習では、Terraform compute モジュールを Visual Studio Code 環境に読み込む方法について説明します。In this exercise, you learn how to load the Terraform compute module into the Visual Studio Code environment.

terraform-azurerm-compute モジュールの複製Clone the terraform-azurerm-compute module

  1. こちらのリンクを使用して、GitHub 上の Terraform Azure Rm Compute モジュールにアクセスします。Use this link to access the Terraform Azure Rm Compute module on GitHub.

  2. [複製またはダウンロード] を選択します。Select Clone or download.

    複製またはダウンロード

    注意

    この例では、使用するフォルダーに terraform azurerm-compute という名前が付けられています。In this example, our folder was named terraform-azurerm-compute.

このフォルダーを Visual Studio Code で開きます。Open the folder in Visual Studio Code

  1. Visual Studio Code を起動します。Launch Visual Studio Code.

  2. メニュー バーから、 [ファイル] > [フォルダーを開く] を選択し、前の手順で作成したフォルダーに移動して選択します。From the menu bar, select File > Open Folder and navigate to and select the folder you created in the previous step.

    terraform-azurerm-compute フォルダー

Terraform を初期化するInitialize Terraform

Visual Studio Code 内からの Terraform コマンドの使用を開始するには、2 つの Azure プロバイダー用のプラグイン (random および azurerm) をダウンロードする必要があります。Before you can begin using the Terraform commands from within Visual Studio Code, you download the plug-ins for two Azure providers: random and azurerm.

  1. Visual Studio Code IDE のターミナル ウィンドウで、「terraform init」と入力しますIn the Terminal pane of the Visual Studio Code IDE, enter terraform init.

    terraform init コマンド

  2. az login」と入力し、Enter キーを押して、画面の指示に従います。Enter az login, press <Enter, and follow the on-screen instructions.

モジュール テスト: lintModule test: lint

  1. メニュー バーで、 [表示] > [コマンド パレット] > [Azure Terraform:Execute Test] の順に選択します。From the menu bar, select View > Command Palette > Azure Terraform: Execute Test.

  2. テストの種類のオプション一覧から [lint] を選択します。From the list of test-type options, select lint.

    テストの種類の選択

  3. 確認のメッセージが表示されたら [OK] を選択し、画面の指示に従います。When the confirmation appears, select OK, and follow the on-screen instructions.

    CloudShell を開くかどうかを尋ねるメッセージ

注意

lint または end to end のテストを実行すると、Azure では、コンテナー サービスを使用して、実際のテストを実行するテスト マシンがプロビジョニングされます。When you execute either the lint or end to end test, Azure uses a container service to provision a test machine to perform the actual test. このため、通常、テスト結果が返されるまでに数分かかる場合があります。For this reason, your test results may typically take several minutes to be returned.

しばらくすると、次の例のようなリストがターミナル ウィンドウに表示されます。After a few moments, you see a listing in the Terminal pane similar to this example:

lint テストの結果

モジュールのテストTest the module

  1. メニュー バーで、 [表示] > [コマンド パレット] > [Azure Terraform:Execute Test] の順に選択します。From the menu bar, select View > Command Palette > Azure Terraform: Execute Test.

  2. テストの種類のオプション一覧から [end to end] を選択します。From the list of test type options, select end to end.

    テストの種類の選択

  3. 確認のメッセージが表示されたら [OK] を選択し、画面の指示に従います。When the confirmation appears, select OK, and follow the on-screen instructions.

    CloudShell を開くかどうかを尋ねるメッセージ

注意

lint または end to end のテストを実行すると、Azure では、コンテナー サービスを使用して、実際のテストを実行するテスト マシンがプロビジョニングされます。When you execute either the lint or end to end test, Azure uses a container service to provision a test machine to perform the actual test. このため、通常、テスト結果が返されるまでに数分かかる場合があります。For this reason, your test results may typically take several minutes to be returned.

しばらくすると、次の例のようなリストがターミナル ウィンドウに表示されます。After a few moments, you see a listing in the Terminal pane similar to this example:

Test results

次のステップNext steps