cloud-init Nedir?

cloud-init, bulut servislerinde (OpenStack, Proxmox, DigitalOcean, vs.) başlatılan sanal makinelerde ilk konfigürasyon işlemlerini gerçekleştirmek için kullanılan bir araçtır. YAML formatında hazırlanan bir dosya aracılığıyla aşağıdaki işlemleri otomatikleştirebilir:

  • Kullanıcı oluşturma
  • SSH anahtarı ekleme
  • Paket yükleme
  • Script çalıştırma
  • Dosya kopyalama
  • Servis başlatma

Rol Ataması Ne Demektir?

“Rol”, bir sunucunun görevini tanımlar. Örneğin:

  • web: Apache veya NGINX + PHP
  • db: MySQL veya PostgreSQL
  • cache: Redis veya Memcached
  • monitoring: Netdata, Prometheus Agent

Cloud-init kullanılarak sunucular bu rollerle ilk boot sırasında otomatik yapılandırılabilir.

Örnek cloud-init Yapılandırması: Web Sunucusu Rolü

#cloud-config

hostname: web01

users:

  • name: deploy

sudo: ['ALL=(ALL) NOPASSWD:ALL']

ssh-authorized-keys:

  • ssh-rsa AAAAB3Nza...

package_update: true

package_upgrade: true

packages:

  • nginx
  • php-fpm
  • unzip

runcmd:

  • systemctl enable nginx
  • systemctl start nginx
  • echo "<?php phpinfo(); ?>" > /var/www/html/index.php

Rol Bazlı Otomasyon İçin Dinamik cloud-init Kullanımı

Aşağıdaki yapı, sunucuya role=db şeklinde bir meta veri atanarak veritabanı sunucusu kurulumu yapılmasını sağlar:

#cloud-config

write_files:

  • path: /usr/local/bin/setup-role.sh

permissions: '0755'

content: |

#!/bin/bash

ROLE=$(curl -s http://169.254.169.254/latest/meta-data/role)

if [[ "$ROLE" == "db" ]]; then

apt update && apt install -y mysql-server

systemctl enable mysql && systemctl start mysql

fi

runcmd:

  • bash /usr/local/bin/setup-role.sh

Not: VPS paneliniz, role gibi özel meta veriler tanımlamaya izin veriyorsa (örn. OpenStack user-data), bu yöntemle farklı görevler otomatikleştirilebilir.

cloud-init’in Avantajları

  • Sunucular birkaç saniyede üretime hazır hale gelir.
  • Aynı imaj üzerinden çok farklı görevler yüklenebilir.
  • Konfigürasyonlar versiyon kontrol sistemlerine dahil edilebilir (örneğin Git).
  • DevOps süreçleri, özellikle Ansible, Terraform gibi araçlarla entegre çalışabilir.

Sonuç

Cloud-init, ilk kurulumda VPS sunucularına otomatik roller atamak ve sunucuları belirli görevler için hazır hale getirmek açısından çok değerlidir. Özellikle çok sayıda sunucuyu yöneten sistem yöneticileri ve otomasyon odaklı DevOps ekipleri, bu yapıyı kullanarak zamandan tasarruf ederken altyapılarını daha tutarlı bir şekilde yönetebilir.

Vps.com.tr