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
vehtop
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.