Terraform を使用すると、クラウド インフラストラクチャの定義、プレビュー、デプロイが可能になります。 Terraform を使用して、 HCL 構文を使用して構成ファイルを作成します。 HCL 構文を使用すると、クラウド プロバイダー (Azure など) とクラウド インフラストラクチャを構成する要素を指定できます。 構成ファイルを作成したら、インフラストラクチャの変更をデプロイする前にプレビューできる 実行プラン を作成します。 変更を確認したら、実行プランを適用してインフラストラクチャをデプロイします。
Visual Studio Code Terraform 拡張機能を使用すると、エディターから Terraform を操作できます。 この拡張機能を使用すると、Terraform 構成を作成、テスト、実行できます。
この記事では、次の方法について説明します。
- Azure Terraform Visual Studio Code 拡張機能のインストール
- 拡張機能を使用して Azure リソース グループを作成する
- リソース グループが作成されたことを確認する
- 拡張機能を使用してテストが完了したら、リソース グループを削除します
1. 環境を構成する
- Azure サブスクリプション: Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
Terraform の構成: まだ構成していない場合は、次のいずれかのオプションを使用して Terraform を構成します。
- Bash を使用して Azure Cloud Shell で Terraform を構成する
- PowerShell を使用して Azure Cloud Shell で Terraform を構成する
- Bash を使用して Windows で Terraform を構成する
- PowerShell を使用して Windows で Terraform を構成する
- Bash を使用して Azure Cloud Shell で Terraform を構成する
2. Azure Terraform Visual Studio Code 拡張機能をインストールする
Visual Studio Code を起動します。
左側のメニューから [ 拡張機能] を選択し、検索テキスト ボックスに「
Azure Terraform
」と入力します。拡張機能の一覧から、
Azure Terraform
拡張機能を見つけます。 (最初に表示される拡張機能である必要があります)。拡張機能がまだインストールされていない場合は、拡張機能の [インストール ] オプションを選択します。
重要なポイント:
- Azure Terraform 拡張機能の [インストール ] を選択すると、Visual Studio Code によって Azure アカウント拡張機能が自動的にインストールされます。
- Azure アカウントは、Azure Terraform 拡張機能の依存関係ファイルです。 このファイルは、Azure および Azure 関連のコード拡張機能に対する認証に使用されます。
拡張機能のインストールを確認するには、検索テキスト ボックスに「
@installed
」と入力します。 Azure Terraform 拡張機能と Azure アカウント拡張機能の両方が、インストールされている拡張機能の一覧に表示されます。
Visual Studio Code 内から、Cloud Shell 環境でサポートされているすべての Terraform コマンドを実行できるようになりました。
3. Terraform コードを実装する
サンプルの Terraform コードをテストするディレクトリを作成し、それを現在のディレクトリにします。
providers.tf
という名前のファイルを作成し、次のコードを挿入します。terraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>4.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }
main.tf
という名前のファイルを作成し、次のコードを挿入します。# Create a random name for the resource group using random_pet resource "random_pet" "rg_name" { prefix = var.resource_group_name_prefix } # Create a resource group using the generated random name resource "azurerm_resource_group" "example" { ___location = var.resource_group_location name = random_pet.rg_name.id }
プロジェクト変数を含む
variables.tf
という名前のファイルを作成し、次のコードを挿入します。variable "resource_group_location" { type = string default = "eastus" description = "Location of the resource group." } variable "resource_group_name_prefix" { type = string default = "rg" description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription." }
プロジェクト変数を含む
outputs.tf
という名前のファイルを作成し、次のコードを挿入します。output "resource_group_name" { value = azurerm_resource_group.example.name }
4. Cloud Shell にコードをプッシュする
[表示] メニューの [コマンド パレット...] を選択します。
[コマンド パレット] テキスト ボックスで、
Azure Terraform: Push
入力を開始し、表示されたら選択します。[ OK] を 選択して Cloud Shell を開きます。
重要なポイント:
- 構成の
azureTerraform.files
設定で定義されているフィルターを満たすワークスペース ファイルが Cloud Shell にコピーされます。
- 構成の
5. Visual Studio Code 内で Terraform を初期化する
[表示] メニューの [コマンド パレット...] を選択します。
[コマンド パレット] テキスト ボックスで、
Azure Terraform: Init
入力を開始し、表示されたら選択します。重要なポイント:
- このオプションを選択すると、コマンド ラインから terraform init を実行するのと同じになり、Terraform デプロイが初期化されます。
- このコマンドによって、Azure リソース グループを作成するために必要な Azure モジュールがダウンロードされます。
プロンプトに従って、サポートされている最新バージョンの nodejs などの依存関係をインストールします。
既定の Azure サブスクリプションで初めて Cloud Shell を使用する場合は、プロンプトに従って環境を構成します。
6. Visual Studio Code 内に Terraform 実行プランを作成する
[表示] メニューの [コマンド パレット...] を選択します。
[コマンド パレット] テキスト ボックスで、
Azure Terraform: Plan
入力を開始し、表示されたら選択します。重要なポイント:
- このコマンドは 、terraform プラン を実行して、現在のディレクトリの Terraform 構成ファイルから実行プランを作成します。
7. Visual Studio Code 内で Terraform 実行プランを適用する
[表示] メニューの [コマンド パレット...] を選択します。
[コマンド パレット] テキスト ボックスで、
Azure Terraform: Apply
入力を開始し、表示されたら選択します。確認を求められたら、「
yes
」と入力し、<Enter>
キーを押します。
8. 結果を確認する
[表示] メニューの [コマンド パレット...] を選択します。
[コマンド パレット] テキスト ボックスで、
Azure: Open Bash in Cloud Shell
入力を開始し、表示されたら選択します。az group show を実行してリソース グループを表示します。
<resource_group_name>
プレースホルダーを、Terraform 実行プランの適用後に表示されるリソース グループのランダムに生成された名前に置き換えます。
az group show --name <resource_group_name>
9.リソースをクリーンアップする
[表示] メニューの [コマンド パレット...] を選択します。
[コマンド パレット] テキスト ボックスで、
Azure Terraform: Destroy
入力を開始し、表示されたら選択します。確認を求められたら、「
yes
」と入力し、<Enter>
キーを押します。Terraform が新しいリソース グループを正常に破棄したことを確認するには、「 結果を確認する」セクションの手順を実行します。
Azure での Terraform のトラブルシューティング
Azure で Terraform を使用するときの一般的な問題のトラブルシューティング