Terraform logosu

Terraform

v1.11.3~25 MBAçık Kaynak Linux macOS Windows
Güvenli Açık Kaynak
Resmi Site GitHub

Terraform, HashiCorp tarafından geliştirilen açık kaynaklı bir altyapı-kod-olarak (IaC) aracıdır. HCL (HashiCorp Configuration Language) ile yazılan deklaratif yapılandırma dosyaları üzerinden bulut, sunucu ve ağ kaynaklarını oluşturur, değiştirir ve yönetir. AWS, Azure, Google Cloud ve 1000’den fazla sağlayıcıyı destekler. Windows, macOS ve Linux üzerinde çalışır; açık kaynak sürümü MPL 2.0 lisansıyla ücretsizdir.

Temel Özellikler

  • Deklaratif HCL söz dizimi: altyapıyı “ne olmasını istiyorum” şeklinde tanımlama
  • 1000+ sağlayıcı: AWS, Azure, GCP, Kubernetes, Vault, Cloudflare ve daha fazlası
  • Durum (state) yönetimi: mevcut altyapıyla yapılandırma arasındaki farkı izleme
  • Plan ve Apply ayrımı: değişiklikleri uygulamadan önce önizleme
  • Terraform Cloud ve Terraform Enterprise ile uzak state ve ekip yönetimi
  • Module sistemi: yeniden kullanılabilir altyapı bileşenleri
  • Import komutu ile mevcut kaynakları Terraform yönetimine alma
  • Workspace desteği ile dev/staging/production ortamı yönetimi

Terraform ile ilk altyapı nasıl oluşturulur?

Çalışma dizini oluşturun ve main.tf adında bir dosya açın. Sağlayıcıyı tanımlayın (örneğin AWS için): provider "aws" { region = "eu-west-1" }. Kaynak ekleyin: resource "aws_instance" "example" { ami = "ami-12345" instance_type = "t2.micro" }. Çalışma dizininde terraform init ile sağlayıcı eklentilerini indirin. terraform plan ile neyin oluşturulacağını önizleyin. Son olarak terraform apply ile onaylayın ve kaynaklar oluşturulsun. Tüm kaynakları kaldırmak için terraform destroy komutunu kullanın.

Terraform state dosyası nedir ve nasıl yönetilir?

Terraform, oluşturduğu kaynakların durumunu terraform.tfstate dosyasında saklar. Bu dosyayı versiyon kontrol sistemine (git) eklemeyin; şifreler ve hassas bilgiler içerebilir. Ekip ortamında state için uzak backend kullanın: S3, Terraform Cloud veya Azure Blob Storage. terraform.tfstate dosyasını .gitignore‘a ekleyin. State’i manuel düzenlemek yerine terraform state alt komutlarını kullanın. State kilit mekanizması için DynamoDB (AWS) veya Terraform Cloud tercih edin.

Terraform hata veriyor veya plan beklenenle uyuşmuyorsa ne yapmalı?

“Error acquiring the state lock” hatasında başka bir terraform işlemi çalışıyor olabilir; terraform force-unlock LOCK_ID komutuyla kilidi kaldırın. “Provider not found” hatasında terraform init -upgrade ile sağlayıcıları yenileyin. State ile gerçek altyapı uyuşmazlığında terraform refresh ile state’i güncelleyin. Hatalı silinen kaynakları geri almak için terraform import RESOURCE_TYPE.NAME ID komutuyla state’e ekleyin. Debug çıktısı için TF_LOG=DEBUG terraform plan değişkeniyle çalıştırın.

Terraform alternatifleri

Pulumi, HCL yerine Python, TypeScript, Go ve C# gibi genel amaçlı dillerle altyapı tanımlamayı destekleyen bir IaC alternatifidir.
Ansible, altyapı oluşturmaktan çok mevcut sunucuları yapılandırma ve uygulama dağıtımına odaklanan agentsiz bir otomasyon aracıdır.
OpenTofu, Terraform’un MPL lisans değişikliği öncesindeki fork’udur; açık kaynak topluluğu tarafından sürdürülen ve Terraform ile büyük ölçüde uyumlu bir IaC aracıdır.

Artılar
  • Çok geniş provider ekosistemi
  • Declarative HCL syntax
  • State yönetimi
  • Modül desteği
  • CI/CD entegrasyonu
Eksiler
  • State yönetimi karmaşık olabilir
  • BSL-1.1 lisans kısıtlamaları
  • Öğrenme eğrisi var

İşletim Sistemi: Windows 10/11, macOS, Linux
RAM: 256 MB
Disk: 100 MB

Değerlendirmeler

Değerlendirme Yaz

İndirme hazırlanıyor...

5

İndirme 5 saniye içinde başlayacak...