チュートリアル:モジュール レジストリを使用した Terraform での Azure VM クラスターの作成Tutorial: Create an Azure VM cluster with Terraform using the Module Registry

この記事では、Terraform Azure コンピューティング モジュールを使用した小さな VM クラスターの作成について説明します。This article walks you through creating a small VM cluster with the Terraform Azure compute module. このチュートリアルで学習する内容は次のとおりです。In this tutorial you learn how to:

  • Azure で認証を設定するSet up authentication with Azure
  • Terraform テンプレートを作成するCreate the Terraform template
  • プランを使用して変更を視覚化するVisualize the changes with plan
  • 構成を適用して VM クラスターを作成するApply the configuration to create the VM cluster

Terraform の詳細については、Terraform のドキュメントを参照してください。For more information on Terraform, see the Terraform documentation.

Azure で認証を設定するSet up authentication with Azure

ヒント

Terraform 環境変数を使用するか、または Azure Cloud Shell でこのチュートリアルを実行する場合は、この手順を省略します。If you use Terraform environment variables or run this tutorial in the Azure Cloud Shell, skip this step.

Azure サービス プリンシパルを作成するには、「Install Terraform and configure access to Azure (Terraform のインストールおよび Azure へのアクセスの構成)」を確認してください。Review Install Terraform and configure access to Azure to create an Azure service principal. このサービス プリンシパルを使用して、空のディレクトリ内の新しいファイル azureProviderAndCreds.tf に次のコードを入力します。Use this service principal to populate a new file azureProviderAndCreds.tf in an empty directory with the following code:

variable subscription_id {}
variable tenant_id {}
variable client_id {}
variable client_secret {}

provider "azurerm" {
    version = "~>1.40"

    subscription_id = "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    tenant_id = "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    client_id = "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    client_secret = "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

テンプレートを作成するCreate the template

次のコードを使用して、main.tf という名前の新しい Terraform テンプレートを作成します。Create a new Terraform template named main.tf with the following code:

module mycompute {
    source = "Azure/compute/azurerm"
    resource_group_name = "myResourceGroup"
    location = "East US 2"
    admin_password = "ComplxP@assw0rd!"
    vm_os_simple = "WindowsServer"
    is_windows_image = "true"
    remote_port = "3389"
    nb_instances = 2
    public_ip_dns = ["unique_dns_name"]
    vnet_subnet_id = module.network.vnet_subnets[0]
}

module "network" {
    source = "Azure/network/azurerm"
    location = "East US 2"
    resource_group_name = "myResourceGroup"
}

output "vm_public_name" {
    value = module.mycompute.public_ip_dns_name
}

output "vm_public_ip" {
    value = module.mycompute.public_ip_address
}

output "vm_private_ips" {
    value = module.mycompute.network_interface_private_ip
}

構成ディレクトリで terraform init を実行します。Run terraform init in your configuration directory. 0.10.6 以上の Terraform バージョンを使用すると、次の出力が表示されます。Using a Terraform version of at least 0.10.6 shows the following output:

Terraform の初期化

プランを使用して変更を視覚化するVisualize the changes with plan

テンプレートによって作成された仮想マシン インフラストラクチャをプレビューするには、terraform plan を実行します。Run terraform plan to preview the virtual machine infrastructure created by the template.

Terraform プラン

適用によって仮想マシンを作成するCreate the virtual machines with apply

Azure に VM をプロビジョニングするには、terraform apply を実行します。Run terraform apply to provision the VMs on Azure.

Terraform の適用

次のステップNext steps