Yeni bir VPS sunucu kurulduğunda hostname ayarlama, SSH anahtarı ekleme, güncellemeleri yükleme, paket kurulumu gibi işlemler manuel olarak tekrar tekrar yapılır. Cloud-init, bu süreci otomatikleştirerek VPS’lerin ilk açılışta ihtiyaca özel şekilde konfigüre edilmesini sağlar. Özellikle altyapı otomasyonu ve çoklu sunucu dağıtımlarında zaman tasarrufu ve standart yapı sağlamak adına kritik bir araçtır.

Cloud-init Nedir?

Cloud-init, bir VPS veya sanal makine ilk kez başlatıldığında çalışan ve temel yapılandırmaları gerçekleştiren bir araçtır. Bulut sağlayıcıları tarafından desteklenir ve kullanıcı tarafından sağlanan “user-data” adlı YAML dosyası üzerinden çalışır.

Cloud-init ile Otomatikleştirilebilecek İşlemler

  • Hostname belirleme
  • SSH anahtarı ekleme
  • Paket güncelleme ve kurulum
  • Kullanıcı oluşturma
  • Sistem servislerinin başlatılması
  • Script çalıştırma
  • Network ayarlarının yapılandırılması

Örnek Cloud-init Yapılandırma Dosyası

#cloud-config

hostname: vps-test01

users:

  • name: devadmin

sudo: ALL=(ALL) NOPASSWD:ALL

ssh-authorized-keys:

  • ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...

package_update: true

packages:

  • htop
  • nginx

runcmd:

  • systemctl enable nginx
  • systemctl start nginx

Bu yapılandırma ile;

  • vps-test01 hostname atanır,
  • devadmin adlı bir kullanıcı oluşturulur,
  • SSH erişimi sağlanır,
  • nginx ve htop kurulur ve nginx servisi başlatılır.

Kullanım Senaryoları

  • Otomatik Sunucu Klonlama: Her yeni VPS aynı yapılandırma ile başlar.
  • CI/CD Altyapısı: Test sunucuları her tetiklemede aynı şekilde kurulabilir.
  • DevOps Süreçleri: Terraform, Ansible gibi araçlarla entegre kullanılabilir.
  • Cloud Provider Destekli: DigitalOcean, OpenStack, Proxmox gibi sistemlerde desteklenir.

Cloud-init Dosyasını VPS’e Uygulama

Cloud-init genellikle VPS oluşturulurken cloud provider’ın arayüzü veya API’si aracılığıyla user-data olarak iletilir. Örneğin:

# KVM için örnek kullanım

virt-install \

--name vps-1 \

--cloud-init user-data=user-data.yaml \

...

Proxmox, DigitalOcean, Hetzner ve benzeri sağlayıcılar da bu yöntemi desteklemektedir.

Dikkat Edilmesi Gerekenler

  • YAML formatına dikkat edilmelidir, girintiler önemlidir.
  • Cloud-init logları /var/log/cloud-init.log ve /var/log/cloud-init-output.log dosyalarından izlenebilir.
  • Aynı VPS’e tekrar cloud-init çalıştırmak için cloud-init clean komutu kullanılır.

Sonuç

Cloud-init ile VPS kurulumlarınızı otomatize ederek zamandan tasarruf edebilir, tutarlı ve güvenli yapılandırmalar oluşturabilirsiniz. Bu, özellikle büyük altyapılarda standartlaştırma ve otomasyon açısından ciddi bir avantaj sağlar.

Vps.com.tr