AZURE ÜZERİNDE TERRAFORM İLE ALT YAPI GELİŞTİRME – BÖLÜM 5: IMPLICIT (ÖRTÜLÜ) BAĞIMLILIKLAR
Azure üzerinde Terraform ile Altyapı Geliştirme makale serisine hoş geldiniz. Yazı dizisinin beşinci bölümünde, Terraform’un kaynak yaratma ve yok etme sırasını nasıl yönettiğine bakacağız. Altyapıyı yönetmek için atılması gereken adımları belirlemenin birkaç yolu vardır. Yapılandırmadaki kaynaklar arasındaki implicit bağımlılıkları kullanarak kaynakları oluşturmak için kullanılan sıra belirtilmelidir.
- Aşağıdaki gibi bir main.tf Terraform yapılandırma dosyamız olduğunu varsayalım. Burada görebileceğiniz gibi, bir kaynak (alt ağ) diğer kaynağa (vnet) bağlıdır.
# Terraform
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "2.40.0"
}
}
}
#Azure provider
provider "azurerm" {
features {}
}
#Create virtual network
resource "azurerm_virtual_network" "vnet" {
name = "devcloudops-vnet"
address_space = ["10.0.0.0/16"]
location = "northeurope"
resource_group_name = "demo02RG"
}
# Create subnet
resource "azurerm_subnet" "subnet" {
name = "devcloudops-subnet"
resource_group_name = "demo02RG"
virtual_network_name = "devcloudops-vnet"
address_prefixes = ["10.0.0.0/24"]
}
Bu konfigürasyonu “terraform apply” komutu ile kurduğunuz zaman aşağıdaki gibi bir hata mesajı göreceksiniz. Alt Ağın, Sanal Ağ tamamlanmadan önce oluşturulmakta olduğunu görebilirsiniz. Terraform, önce Sanal Ağın var olması gerektiğini bilmiyor.
Şimdi Terraform yapılandırma dosyasını “terraform graph” komutunu kullanarak görselleştirelim. Çıktı DOT biçimindedir ve bir akış şeması oluşturmak için GraphViz gibi uygulamalar tarafından kullanılabilir.
Tüm çıktıyı “terraform graph” kopyalayarak ve GraphViz ile bir akış şeması oluşturabilirsiniz.
Sağdaki akış şemasında, metinden bir grafik görselleştirme oluşturulacaktır. Sanal Ağ ve Alt Ağ kaynaklarının aynı anda dağıtılmak üzere yapılandırıldığını görebilirsiniz.Şimdi main.tf dosyasına dönün ve alt ağ kaynağındaki sanal ağ adını “azurerm_virtual_network.vnet.name” ile değiştirin.
Yeni güncellenen “main.tf” dosyasını kaydettikten sonra “terraform apply”ı yeniden çalıştırın. Sanal Ağ ve Alt Ağın artık başarıyla dağıtıldığını görebilirsiniz.
“terraform graph” komutunu tekrar çalıştırdığınızda ve çıktıyı GraphViz ile görselleştirdiğinizde aşağıdaki gibi bir ekran göreceksiniz.
Akış şemasının artık Sanal Ağ ve Alt Ağ kaynakları arasındaki bağımlılığı gösterdiğini görebilirsiniz. Ayrıca Azure Portal’ı kontrol ettiğinizde kaynağınızın oluşturulduğunu görebilirsiniz.