swetrix
terraform-cover

Terraform Nedir ?

HashiCorp Terraform, DevOps mühendislerinin bir uygulamanın çalışması için ihtiyaç duyduğu fiziksel kaynakları programlı olarak sağlamalarına olanak tanıyan, açık kaynaklı bir Infrastructure as code (IaC) aracıdır. (bknz. https://en.wikipedia.org/wiki/Infrastructure_as_code)

Infrastructure as code, bir uygulamanın temelindeki IT altyapısını programlama yoluyla yöneten bir IT uygulamasıdır. Kaynak tahsisine yönelik bu yaklaşım, bir operasyon ekibinin gerekli her kaynağı manuel olarak yapılandırmasını gerektirmenin aksine, geliştiricilerin kaynakları mantıksal olarak yönetmesine, izlemesine ve sağlamasına olanak tanır.

Terraform kullanıcıları, HCL (HashiCorp Yapılandırma Dili) adı verilen JSON benzeri bir yapılandırma dili kullanarak altyapı yapılandırmalarını tanımlar ve uygular. HCL’nin basit syntax’ı, DevOps ekiplerinin birden çok bulut ve şirket içi veri merkezinde altyapı sağlamasını kolaylaştırır.

Örnek bir .tf dosyası (Örnekte bir VM ve bu VM için ekstra bir disk üretilmek istenmiştir. Örnek GCP içindir.)

resource "google_compute_disk" "additional_disk" {
  name                      = "vm-additional-disk"
  type                      = var.additional_disk_type
  size                      = var.additional_disk_size
  zone                      = var.instance_zone
  physical_block_size_bytes = 4096
}

resource "google_compute_instance" "gce" {
  name         = "virtualmachine"
  machine_type = var.virtualmachine_instance_type
  zone         = var.virtualmachine_zone
  tags         = var.virtualmachine_network_tag
  boot_disk {
    initialize_params {
      image = var.boot_disk_image
      size  = var.boot_disk_size
    }
  }
  attached_disk {
    source      = google_compute_disk.additional_disk.self_link
    device_name = google_compute_disk.additional_disk.name
  }
  network_interface {
    subnetwork = var.subnet_name
    access_config {

    }
  }
}

Terraform nasıl çalışır?

Terraform, kullanıcıların yalnızca yapılandırma dosyalarını ve sürüm kontrolünü kullanarak tüm altyapılarını tanımlamasına olanak tanır. Bir sunucuyu, veritabanını veya yük dengeleyiciyi dağıtmak ve çalıştırmak için bir komut verildiğinde, Terraform kodu ayrıştırır ve kaynak sağlayıcıya yapılan bir API çağrısına çevirir. Terraform açık kaynak olduğundan, geliştiriciler her zaman yeni eklentiler yazarak veya mevcut eklentilerin farklı sürümlerini derleyerek aracın kullanışlılığını genişletebilirler.

Terraform kurulumu (Ubuntu, MacOS)

Ubuntu

Bağımlılık paketlerini kur

sudo apt update
sudo apt install  software-properties-common gnupg2 curl

Repo ekle ve imzala

curl https://apt.releases.hashicorp.com/gpg | gpg --dearmor > hashicorp.gpg
sudo install -o root -g root -m 644 hashicorp.gpg /etc/apt/trusted.gpg.d/
sudo apt-add-repository "deb [arch=$(dpkg --print-architecture)] https://apt.releases.hashicorp.com $(lsb_release -cs) main"

APT Güncelle

sudo apt update

Kurulumu tamamla

sudo apt install terraform

Kurulum ve versiyonu kontrol et

terraform -v
Terraform v1.2.2
on linux_amd64
MacOS
brew tap hashicorp/tap
brew install hashicorp/tap/terraform

Kaynak ve diğer OS’ler için göz atabilirsin. https://learn.hashicorp.com/tutorials/terraform/install-cli

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Önceki Yazı
nginx-letsencrypt

NGINX ve Let’s Encrypt kullanarak ücretsiz SSL Sertifikası oluşturmak ve otomatik yenilemek

Sonraki Yazı
pritunl vpn server

Pritunl VPN Server Kurulum ve Yapılandırma (Open-Source VPN Server)

Benzer Yazılar