クイック スタート:Azure リソースを作成するために Terraform をインストールして構成するQuickstart: Install and configure Terraform to provision Azure resources

Terraform は、シンプルなテンプレート言語を使ってクラウド インフラストラクチャを簡単に定義、プレビュー、およびデプロイできるツールです。Terraform provides an easy way to define, preview, and deploy cloud infrastructure by using a simple templating language. この記事では、Terraform を使用して Azure にリソースをプロビジョニングするために必要な手順について説明します。This article describes the necessary steps to use Terraform to provision resources in Azure.

Azure で Terraform を使用する方法の詳細については、Terraform ハブに関する記事を参照してください。To learn more about how to use Terraform with Azure, visit the Terraform Hub.

注意

Terraform 固有のサポートについては、コミュニティ チャネルのいずれかを使用して Terraform に直接問い合わせてください。For Terraform specific support, please reach out to Terraform directly using one of their community channels:

  • コミュニティ ポータルの Terraform セクションには、質問、ユース ケース、および役立つパターンが含まれています。The Terraform section of the community portal contains questions, use cases, and useful patterns.

  • プロバイダー関連の質問については、コミュニティ ポータルの Terraform プロバイダー セクションにアクセスしてください。For provider-related questions please visit the Terraform Providers section of the community portal.

Azure Cloud Shell を使用するUse Azure Cloud Shell

Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。You can use either Bash or PowerShell with Cloud Shell to work with Azure services. ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Azure Cloud Shell を開始するには:To start Azure Cloud Shell:

オプションOption 例とリンクExample/Link
コード ブロックの右上隅にある [使ってみる] を選択します。Select Try It in the upper-right corner of a code block. [使ってみる] を選択しても、コードは Cloud Shell に自動的にコピーされません。Selecting Try It doesn't automatically copy the code to Cloud Shell. Azure Cloud Shell の [使ってみる] の例
https://shell.azure.com に移動するか、 [Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser. 新しいウィンドウで Cloud Shell を起動するLaunch Cloud Shell in a new window
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。Select the Cloud Shell button on the menu bar at the upper right in the Azure portal. Azure Portal の [Cloud Shell] ボタン

Azure Cloud Shell でこの記事のコードを実行するには:To run the code in this article in Azure Cloud Shell:

  1. Cloud Shell を開始します。Start Cloud Shell.

  2. [コピー] ボタンを選択して、コード ブロックをコードにコピーします。Select the Copy button on a code block to copy the code.

  3. Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードを Cloud Shell セッションに貼り付けます。Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

  4. Enter キーを選択して、コードを実行します。Select Enter to run the code.

Cloud Shell には、Terraform が既定でインストールされています。Terraform is installed by default in the Cloud Shell. Terraform をローカルにインストールする場合は、次の手順を完了してください。それ以外の場合は、「Terraform から Azure にアクセスするための設定」に進んでください。If you choose to install Terraform locally, complete the next step, otherwise continue to Set up Terraform access to Azure.

Terraform のインストールInstall Terraform

Terraform をインストールするには、ご利用のオペレーティング システムに適したパッケージを別個のインストール ディレクトリにダウンロードします。To install Terraform, download the appropriate package for your operating system into a separate install directory. ダウンロードには実行可能ファイルが 1 つ含まれており、そのファイルのグローバル パスを定義する必要があります。The download contains a single executable file, for which you should also define a global path. Linux と Mac 上でパスを設定する方法の詳細については、こちらの Web ページをご覧ください。For instructions on how to set the path on Linux and Mac, go to this webpage. Windows 上でパスを設定する方法の詳細については、こちらの Web ページをご覧ください。For instructions on how to set the path on Windows, go to this webpage.

terraform コマンドでパス構成を確認します。Verify your path configuration with the terraform command. 次の出力例のように、使用可能な Terraform オプションの一覧が表示されます。A list of available Terraform options is shown, as in the following example output:

azureuser@Azure:~$ terraform
Usage: terraform [--version] [--help] <command> [args]

Terraform から Azure にアクセスするための設定Set up Terraform access to Azure

Terraform で Azure にリソースをプロビジョニングできるようにするには、Azure AD サービス プリンシパルを作成します。To enable Terraform to provision resources into Azure, create an Azure AD service principal. サービス プリンシパルは、Terraform スクリプトが Azure サブスクリプションにリソースをプロビジョニングすることを許可します。The service principal grants your Terraform scripts to provision resources in your Azure subscription.

複数の Azure サブスクリプションがある場合は、先に az account list を使用してアカウントに対するクエリを実行して、サブスクリプション ID とテナント ID の値を取得します。If you have multiple Azure subscriptions, first query your account with az account list to get a list of subscription ID and tenant ID values:

az account list --query "[].{name:name, subscriptionId:id, tenantId:tenantId}"

選択したサブスクリプションを使用するには、az account set. を使用して、このセッション用のサブスクリプションを設定します。To use a selected subscription, set the subscription for this session with az account set. 使用するサブスクリプションから返された id フィールドの値を SUBSCRIPTION_ID 環境変数に設定します。Set the SUBSCRIPTION_ID environment variable to hold the value of the returned id field from the subscription you want to use:

az account set --subscription="${SUBSCRIPTION_ID}"

これで、Terraform で使用するサービス プリンシパルを作成できます。Now you can create a service principal for use with Terraform. 次のように、az ad sp create-for-rbac を使用して、サブスクリプションのスコープを設定します。Use az ad sp create-for-rbac, and set the scope to your subscription as follows:

az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/${SUBSCRIPTION_ID}"

ご自分の appIdpasswordsp_name、および tenant が返されます。Your appId, password, sp_name, and tenant are returned. appIdpassword を書き留めておきます。Make a note of the appId and password.

Terraform 環境変数の構成Configure Terraform environment variables

Azure AD サービス プリンシパルを使用するように Terraform を構成するには、次の環境変数を設定します。これは、後で Azure Terraform モジュールによって使用されます。To configure Terraform to use your Azure AD service principal, set the following environment variables, which are then used by the Azure Terraform modules. Azure パブリック以外の Azure クラウドで作業している場合は、環境を設定することもできます。You can also set the environment if working with an Azure cloud other than Azure public.

  • ARM_SUBSCRIPTION_ID
  • ARM_CLIENT_ID
  • ARM_CLIENT_SECRET
  • ARM_TENANT_ID
  • ARM_ENVIRONMENT

これらの変数は、次のサンプル シェル スクリプトを使用して設定できます。You can use the following sample shell script to set those variables:

#!/bin/sh
echo "Setting environment variables for Terraform"
export ARM_SUBSCRIPTION_ID=your_subscription_id
export ARM_CLIENT_ID=your_appId
export ARM_CLIENT_SECRET=your_password
export ARM_TENANT_ID=your_tenant_id

# Not needed for public, required for usgovernment, german, china
export ARM_ENVIRONMENT=public

サンプル スクリプトの実行Run a sample script

空のディレクトリに test.tf というファイルを作成し、次のスクリプトを貼り付けます。Create a file test.tf in an empty directory and paste in the following script.

provider "azurerm" {
  # The "feature" block is required for AzureRM provider 2.x. 
  # If you are using version 1.x, the "features" block is not allowed.
  version = "~>2.0"
  features {}
}
resource "azurerm_resource_group" "rg" {
        name = "testResourceGroup"
        location = "westus"
}

ファイルを保存し、Terraform のデプロイを初期化します。Save the file and then initialize the Terraform deployment. この手順によって、Azure リソース グループを作成するために必要な Azure モジュールがダウンロードされます。This step downloads the Azure modules required to create an Azure resource group.

terraform init

出力は次の例のようになります。The output is similar to the following example:

* provider.azurerm: version = "~> 0.3"

Terraform has been successfully initialized!

terraform plan を使用して、Terraform スクリプトによって完了されるアクションをプレビューできます。You can preview the actions to be completed by the Terraform script with terraform plan. リソース グループを作成する準備が完了したら、次のように、Terraform プランを適用します。When ready to create the resource group, apply your Terraform plan as follows:

terraform apply

出力は次の例のようになります。The output is similar to the following example:

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  + azurerm_resource_group.rg
      id:       <computed>
      location: "westus"
      name:     "testResourceGroup"
      tags.%:   <computed>

azurerm_resource_group.rg: Creating...
  location: "" => "westus"
  name:     "" => "testResourceGroup"
  tags.%:   "" => "<computed>"
azurerm_resource_group.rg: Creation complete after 1s

次のステップNext steps

この記事では、Terraform をインストールするか、Cloud Shell を使用して Azure の資格情報を構成し、Azure サブスクリプションでのリソースの作成を開始しました。In this article, you installed Terraform or used the Cloud Shell to configure Azure credentials and start creating resources in your Azure subscription. Azure でより完全な Terraform デプロイを作成するには、次の記事を参照してください。To create a more complete Terraform deployment in Azure, see the following article: