Terraform'a giriş

Tamamlandı

Terraform açık kaynak IaC aracı, HashiCorp Yapılandırma Dili (HCL) olarak bilinen üst düzey bir yapılandırma dili kullanarak bulut altyapısı tanımlamanızı ve sağlamanızı sağlar. Terraform, altyapınız için istenen durumu açıklayan yapılandırma dosyalarında altyapıyı bir arada kullanır. Terraform, Terraform sağlayıcılarını kullanarak genel bulutlar, özel bulutlar ve SaaS hizmetleri gibi tüm altyapıları yönetebilir.

Azure altyapısı için Terraform sağlayıcıları

Çeşitli Terraform sağlayıcıları Azure altyapısının yönetimini sağlar:

  • AzureRM: Sanal makineler, depolama hesapları ve ağ arabirimleri gibi Azure Resource Manager kaynaklarını yönetin.
  • AzureAD: Gruplar, kullanıcılar, hizmet sorumluları ve uygulamalar gibi Microsoft Entra kaynaklarını yönetin.
  • AzureDevOps: Aracılar, depolar, projeler, işlem hatları ve sorgular gibi Azure DevOps kaynaklarını yönetin.
  • AzAPI: Azure Resource Manager API'lerini doğrudan kullanarak Azure kaynaklarını yönetin. Bu sağlayıcı, en yeni Azure kaynaklarının yönetimini etkinleştirerek AzureRM sağlayıcısını tamamlar.
  • Azure Stack: Sanal makineler, DNS, sanal ağlar ve depolama gibi Azure Stack kaynaklarını yönetin.

Depolama hesabı oluşturma

Tüm Terraform yapılandırmaları bir provider blok içermelidir. Aşağıdaki HCL kodu Azure Resource Manager sağlayıcısını (azurerm ) belirtir. adlı storageaccountexamplerg bir Azure kaynak grubu konumunda eastus tanımlanır. Kaynak grubu içinde bir Azure depolama hesabı oluşturulur. Depolama hesabı adı, işlev aracılığıyla oluşturulan bir sayının ilk 24 karakteridir md5 .

terraform {
  required_version = ">=0.12"
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "~>2.0"
    }
  }
}
provider "azurerm" {
  features {}
}

resource "azurerm_resource_group" "rg" {
  location = "eastus"
  name     = "storageaccountexamplerg"
}

resource "azurerm_storage_account" "example" {
  name                     = substr(md5(azurerm_resource_group.rg.id), 0, 24)
  resource_group_name      = azurerm_resource_group.rg.name
  location                 = azurerm_resource_group.rg.location
  account_kind             = "StorageV2"
  account_tier             = "Standard"
  account_replication_type = "LRS"
  access_tier              = "Hot"
}

Terraform kodunu çalıştırma

Azure kaynaklarınızı yönetmek için gerekli Azure modüllerini indirmek için komutunu çalıştırın terraform init :

terraform init

Yapılandırma dosyalarınızda belirttiğiniz yapılandırmayı oluşturmak için hangi eylemlerin gerekli olduğunu belirlemek için komutunu çalıştırın terraform plan . komutu çalıştırılırken bir yürütme planı oluşturulur ancak uygulanmaz. Bu düzen, gerçek kaynaklarda herhangi bir değişiklik yapmadan önce yürütme planının beklentilerinizle eşleşip eşleşmediğini doğrulamanızı sağlar.

terraform plan -out main.tfplan

Yürütme planını doğruladıktan sonra, planı uygulamak için komutunu çalıştırın terraform apply . Bu komut tanımlı kaynakları oluşturur.

terraform apply main.tfplan

Depolama hesabını doğrulama

Azure depolama hesabını doğrulamak için komutunu kullanabilirsiniz terraform state show . Bu komut, belirtilen kaynağın geçerli durumunu gösterir.

Bu modülde oluşturduğunuz depolama hesabı söz konusu olduğunda, komut oluşturulan adı ve depolama hesabı özniteliklerinin ve değerlerinin tam listesini gösterir.

terraform state show 'azurerm_storage_account.example'

Kaynakları temizleme

Bu modülde oluşturduğunuz kaynaklara artık ihtiyacınız kalmadığında bayrağıyla -destroy komutunu çalıştırınterraform apply:

terraform plan -destroy -out main.destroy.tfplan

Yürütme planını uygulamak için komutunu çalıştırın terraform apply :

terraform apply main.destroy.tfplan