0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · Ders

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 CI/CD with GitHub Actions & DevOps Pipelines 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, CI/CD with GitHub Actions & DevOps Pipelines öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. CI/CD with GitHub Actions & DevOps Pipelines 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 production

CI'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 tfplan

Durumu İnceleme

Terraform'un neleri izlediğini görmek için durumu sorgulayabilirsiniz.

  • terraform state list — yönetilen kaynakları listeler
  • terraform 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.web

Mevcut 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-bucket

Sapmaları 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; plan sapmaları 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 CI/CD with GitHub Actions & DevOps Pipelines kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. CI/CD with GitHub Actions & DevOps Pipelines 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. CI/CD with GitHub Actions & DevOps Pipelines 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.

CI/CD with GitHub Actions & DevOps Pipelines öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te CI/CD with GitHub Actions & DevOps Pipelines, 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 CI/CD with GitHub Actions & DevOps Pipelines dersinde kod yazıp çalıştırabilir miyim?

Evet. Her CI/CD with GitHub Actions & DevOps Pipelines 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

  1. Terraform ve GitHub Actions ile IaC
  2. Bulut Kaynaklarını Yönetme
  3. Altyapı Güncellemelerini Otomatikleştirme
  4. Terraform Durumunu ve Uzak Arka Uçları Yönetme
← CI/CD with GitHub Actions & DevOps Pipelines Sayfasına Dön