Terraform'a giriş
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