Bagikan melalui


Mulai cepat: Membuat akun Azure Batch menggunakan Terraform

Mulai menggunakan Azure Batch dengan menggunakan Terraform untuk membuat akun Batch, termasuk penyimpanan. Anda memerlukan akun Microsoft Azure Batch untuk membuat sumber daya komputasi (kumpulan node komputasi) dan tugas Batch. Anda dapat menautkan akun Azure Storage dengan akun Batch Anda. Pasangan ini berguna untuk mendistribusikan aplikasi dan menyimpan data input serta output untuk sebagian besar beban kerja dalam dunia nyata.

Setelah menyelesaikan panduan cepat ini, Anda akan memahami konsep kunci layanan Batch dan siap untuk mencoba Batch dengan beban kerja yang lebih realistis pada skala yang lebih besar.

Terraform memungkinkan definisi, pratinjau, dan penyebaran infrastruktur cloud. Dengan menggunakan Terraform, Anda membuat file konfigurasi menggunakan sintaks HCL. Sintaksis HCL memungkinkan Anda menentukan penyedia cloud - seperti Azure - dan elemen yang membentuk infrastruktur cloud Anda. Setelah membuat file konfigurasi, Anda membuat rencana eksekusi yang memungkinkan Anda mempratinjau perubahan infrastruktur sebelum disebarkan. Setelah memverifikasi perubahan, Anda menerapkan rencana eksekusi untuk menyebarkan infrastruktur.

Dalam artikel ini, Anda akan mempelajari cara:

Prasyarat

Menerapkan kode Terraform

  1. Buat direktori untuk menguji dan menjalankan sampel kode Terraform dan menjadikannya direktori saat ini.

  2. Buat file bernama providers.tf dan masukkan kode berikut:

    terraform {
      required_version = ">=1.0"
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~>3.0"
        }
        random = {
          source  = "hashicorp/random"
          version = "~>3.0"
        }
      }
    }
    provider "azurerm" {
      features {}
    }
    
  3. Buat file bernama main.tf dan masukkan kode berikut:

    resource "random_pet" "rg_name" {
      prefix = var.resource_group_name_prefix
    }
    
    resource "azurerm_resource_group" "rg" {
      name     = random_pet.rg_name.id
      location = var.resource_group_location
    }
    
    resource "random_string" "azurerm_storage_account_name" {
      length  = 13
      lower   = true
      numeric = false
      special = false
      upper   = false
    }
    
    resource "random_string" "azurerm_batch_account_name" {
      length  = 13
      lower   = true
      numeric = false
      special = false
      upper   = false
    }
    
    resource "azurerm_storage_account" "storage" {
      name                     = "storage${random_string.azurerm_storage_account_name.result}"
      resource_group_name      = azurerm_resource_group.rg.name
      location                 = azurerm_resource_group.rg.location
      account_tier             = element(split("_", var.storage_account_type), 0)
      account_replication_type = element(split("_", var.storage_account_type), 1)
    }
    
    resource "azurerm_batch_account" "batch" {
      name                                = "batch${random_string.azurerm_batch_account_name.result}"
      resource_group_name                 = azurerm_resource_group.rg.name
      location                            = azurerm_resource_group.rg.location
      storage_account_id                  = azurerm_storage_account.storage.id
      storage_account_authentication_mode = "StorageKeys"
    }
    
  4. Buat file bernama variables.tf dan masukkan kode berikut:

    variable "resource_group_location" {
      type        = string
      default     = "eastus"
      description = "Location for all resources."
    }
    
    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."
    }
    
    variable "storage_account_type" {
      type        = string
      default     = "Standard_LRS"
      description = "Azure Storage account type."
      validation {
        condition     = contains(["Premium_LRS", "Premium_ZRS", "Standard_GRS", "Standard_GZRS", "Standard_LRS", "Standard_RAGRS", "Standard_RAGZRS", "Standard_ZRS"], var.storage_account_type)
        error_message = "Invalid storage account type. The value should be one of the following: 'Premium_LRS','Premium_ZRS','Standard_GRS','Standard_GZRS','Standard_LRS','Standard_RAGRS','Standard_RAGZRS','Standard_ZRS'."
      }
    }
    
  5. Buat file bernama outputs.tf dan masukkan kode berikut:

    output "resource_group_name" {
      value = azurerm_resource_group.rg.name
    }
    
    output "batch_name" {
      value = azurerm_batch_account.batch.name
    }
    
    output "storage_name" {
      value = azurerm_storage_account.storage.name
    }
    

Menginisialisasi Terraform

Jalankan terraform init untuk menginisialisasi penyebaran Terraform. Perintah ini mengunduh penyedia Azure yang diperlukan untuk mengelola sumber daya Azure Anda.

terraform init -upgrade

Poin-poin penting:

  • Parameter -upgrade meningkatkan plugin penyedia yang diperlukan ke versi terbaru yang sesuai dengan batasan versi konfigurasi.

Buat rencana pelaksanaan Terraform

Jalankan terraform plan untuk membuat rencana eksekusi.

terraform plan -out main.tfplan

Poin-poin penting:

  • Perintah terraform plan membuat rencana eksekusi, tetapi tidak menjalankannya. Sebaliknya, ini menentukan tindakan apa yang diperlukan untuk membuat konfigurasi yang ditentukan dalam file konfigurasi Anda. Pola ini memungkinkan Anda untuk memverifikasi apakah rencana eksekusi sesuai dengan harapan Anda sebelum membuat perubahan apa pun pada sumber daya aktual.
  • Parameter -out opsional memungkinkan Anda menentukan file output untuk rencana. Menggunakan parameter -out memastikan bahwa rencana yang Anda tinjau benar-benar sesuai dengan yang diterapkan.

Terapkan rencana pelaksanaan Terraform

Jalankan terraform apply untuk menerapkan rencana pelaksanaan ke infrastruktur cloud Anda.

terraform apply main.tfplan

Poin-poin penting:

  • Contoh perintah terraform apply mengasumsikan Anda sebelumnya menjalankan terraform plan -out main.tfplan.
  • Jika Anda menentukan nama file yang berbeda untuk parameter -out, gunakan nama file yang sama dalam panggilan ke terraform apply.
  • Jika Anda tidak menggunakan parameter -out, panggil terraform apply tanpa parameter apa pun.

Memverifikasi hasilnya

  1. Dapatkan nama grup sumber daya Azure.

    resource_group_name=$(terraform output -raw resource_group_name)
    
  2. Dapatkan nama akun Batch.

    batch_name=$(terraform output -raw batch_name)
    
  3. Jalankan az batch account show untuk menampilkan informasi tentang akun Batch baru.

    az batch account show \
        --resource-group $resource_group_name \
        --name $batch_name
    

Membersihkan sumber daya

Saat Anda tidak lagi memerlukan sumber daya yang dibuat melalui Terraform, lakukan langkah-langkah berikut:

  1. Jalankan terraform plan dan tentukan destroy.

    terraform plan -destroy -out main.destroy.tfplan
    

    Poin-poin penting:

    • Perintah terraform plan membuat rencana eksekusi, tetapi tidak menjalankannya. Sebaliknya, ini menentukan tindakan apa yang diperlukan untuk membuat konfigurasi yang ditentukan dalam file konfigurasi Anda. Pola ini memungkinkan Anda untuk memverifikasi apakah rencana eksekusi sesuai dengan harapan Anda sebelum membuat perubahan apa pun pada sumber daya aktual.
    • Parameter -out opsional memungkinkan Anda menentukan file output untuk rencana. Menggunakan parameter -out memastikan bahwa rencana yang Anda tinjau benar-benar sesuai dengan yang diterapkan.
  2. Jalankan terraform apply untuk menerapkan rencana eksekusi.

    terraform apply main.destroy.tfplan
    

Memecahkan masalah Terraform di Azure

Memecahkan masalah umum saat menggunakan Terraform di Azure

Langkah berikutnya