Terraform Durumunu ve Uzak Arka Uçları Yönetme
Terraform durumunu anlayın, güvenli uzak arka uçları yapılandırın, durum kilitlemesini yönetin ve ortak IaC pipeline'larında durum bozulmasını önleyin.
Terraform Durumunu ve Uzak Arka Uçları Yönetme, CoddyKit'te ücretsiz bir DevOps Bootcamp dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
Terraform Durumu Nedir
Terraform, oluşturduğu kaynakları bir durum dosyasına (terraform.tfstate) kaydeder. Yapılandırmanızla gerçek bulut kaynakları arasındaki eşleştirmeyi tutar.
Durum olmadan Terraform, hangi kaynakların zaten var olduğunu bilemez; yinelenen kaynaklar oluşturabilir veya güncelleme yapamayabilir.
Yerel Durum Neden Ekiplerde Sorun Çıkarır
Varsayılan olarak durum, yerel diskinizde tutulur. Bir ekiple çalışırken veya CI ortamında bu yaklaşım yetersiz kalır:
- Diğer kişiler durumunuzu göremez
- Eşzamanlı çalıştırmalar dosyayı bozabilir
- Dosya gizli bilgileri düz metin olarak içerir ve yanlışlıkla depoya gönderilebilir
Çözüm, bir uzak arka uç kullanmaktır.
Uzak Arka Uçlar
Bir uzak arka uç, durumu S3 paketi, Azure Blob, GCS veya Terraform Cloud gibi paylaşılan ve kalıcı bir konumda saklar.
Bu sayede her pipeline çalıştırması, mevcut altyapı için tek bir doğruluk kaynağı kullanır.
terraform {
backend "s3" {
bucket = "my-tf-state"
key = "prod/terraform.tfstate"
region = "us-east-1"
}
}Durum Kilitleme
İki pipeline çalıştırması aynı anda değişiklik uygularsa durum bozulabilir. Durum kilitleme, aynı anda yalnızca bir yazma işlemine izin vererek bunu önler.
S3 arka ucunda kilidi bir DynamoDB tablosu sağlar. Terraform Cloud ise kilitlemeyi otomatik olarak yapar.
backend "s3" {
bucket = "my-tf-state"
key = "prod/terraform.tfstate"
dynamodb_table = "tf-locks"
}Durumu Şifreleme
Durum dosyaları genellikle parolalar ve anahtarlar gibi hassas değerler içerir. Durumu bekleme hâlindeyken her zaman şifreleyin.
S3 arka ucu için paket şifrelemesini etkinleştirin ve arka uç yapılandırmasına encrypt = true ekleyin.
backend "s3" {
bucket = "my-tf-state"
key = "prod/terraform.tfstate"
encrypt = true
}Ortamlar için Çalışma Alanları
Terraform çalışma alanları, tek bir yapılandırmanın her ortam için bir tane olmak üzere birden fazla durum dosyasını yönetmesini sağlar.
Ortamlar arasında geçiş yaparak hazırlık ve üretim ortamlarının aynı durumu paylaşmasını önleyin.
terraform workspace new staging
terraform workspace select productionCI'da Planlama ve Uygulama
Bir pipeline içinde, değişiklikleri önizlemek için (genellikle PR'larda) terraform plan komutunu, uygulamak içinse (main dalına birleştirme sırasında) terraform apply komutunu çalıştırın.
Planı bir dosyaya kaydedin; böylece apply tam olarak incelenen planı kullanır.
terraform plan -out=tfplan
terraform apply -auto-approve tfplanDurumu İnceleme
Terraform'un neleri izlediğini görmek için durumu sorgulayabilirsiniz.
terraform state list— yönetilen kaynakları listelerterraform state show <addr>— bir kaynağın ayrıntılarını gösterir
Durumu elle düzenlemekten kaçının; bunun yerine komutları kullanın.
terraform state list
terraform state show aws_instance.webMevcut Kaynakları İçe Aktarma
Bir kaynak Terraform dışında oluşturulduysa yeniden oluşturmak yerine terraform import ile yönetim kapsamına alın.
Bu, mevcut altyapıya IaC uygularken yıkıcı nitelikteki yinelenen kaynakların oluşmasını önler.
terraform import aws_s3_bucket.logs my-existing-bucketSapmaları Ele Alma
Sapma, bir kişinin altyapıyı elle değiştirmesi ve gerçek durumun artık durum dosyasıyla eşleşmemesiyle oluşur.
Sapmaları algılamak için düzenli olarak terraform plan çalıştırın; ardından durumu düzeltmek için yeniden uygulayın veya yapılandırmayı gerçek duruma uyacak şekilde güncelleyin.
Durum Dosyasını Asla Depoya Göndermeyin
Uzak arka uç kullansanız bile yerel durum ve plan dosyalarının git tarafından yok sayıldığından emin olun. Bu dosyalar gizli bilgiler içerir.
İyi bir .gitignore dosyası sizi yanlışlıkla gerçekleşebilecek sızıntılara karşı korur.
# .gitignore
*.tfstate
*.tfstate.*
tfplan
.terraform/Kısa Kontrol
Terraform durumu anlayışınızı test edin.
Özet
Terraform durumunu güvenli biçimde yönetmeyi öğrendiniz.
- Durum, yapılandırmayı gerçek kaynaklarla eşleştirir; durumu asla elle düzenlemeyin
- Uzak arka uçlar, durumu ekip ve CI arasında paylaşır
- Kilitleme ve şifreleme, bozulmaya ve sızıntılara karşı koruma sağlar
- Çalışma alanları ortamları birbirinden yalıtır;
plansapmaları algılar
Sağlam durum yönetimi, güvenilir IaC pipeline'larının temelidir.
Sıkça Sorulan Sorular
“Terraform Durumunu ve Uzak Arka Uçları Yönetme” dersi ücretsiz mi?
Evet — “Terraform Durumunu ve Uzak Arka Uçları Yönetme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
“Terraform Durumunu ve Uzak Arka Uçları Yönetme” dersinde ne öğreneceğim?
Terraform durumunu anlayın, güvenli uzak arka uçları yapılandırın, durum kilitlemesini yönetin ve ortak IaC pipeline'larında durum bozulmasını önleyin. DevOps Bootcamp ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Terraform Durumunu ve Uzak Arka Uçları Yönetme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?
Evet. Her DevOps Bootcamp dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Terraform ve GitHub Actions ile IaC
- Bulut Kaynaklarını Yönetme
- Altyapı Güncellemelerini Otomatikleştirme
- Terraform Durumunu ve Uzak Arka Uçları Yönetme