Cloud-init ile VPS İlk Kurulumlarının Otomatikleştirilmesi

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ı

  1. Otomatik Sunucu Klonlama: Her yeni VPS aynı yapılandırma ile başlar.
  2. CI/CD Altyapısı: Test sunucuları her tetiklemede aynı şekilde kurulabilir.
  3. DevOps Süreçleri: Terraform, Ansible gibi araçlarla entegre kullanılabilir.
  4. 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