Proxmox VE'de Ubuntu 22.04 LTS Sunucu Şablonu Oluşturma Rehberi 
Selam sistemciler!
Bugün terminalin tozunu alıp, Proxmox sanallaştırma ortamımızda işleri inanılmaz derecede hızlandıracak bir sihirbazlık yapacağız: VM Template (Sanal Makine Şablonu) oluşturmak. Yeni bir Ubuntu sunucusunu sıfırdan kurup, güncelleyip, temel paketleri yükleyip, SSH ayarlarını yapıp... her seferinde bu döngüye girmekten sıkıldıysanız, doğru yerdesiniz. Bu rehberle, bir kere hazırlayacağınız bir şablondan, saniyeler içinde yepyeni, hazır sunucular klonlayabileceksiniz. Haydi başlayalım! 
Neden Şablon (Template) Kullanmalıyım?
Adım 1: Temel Sanal Makineyi (VM) Oluşturma
İlk iş, şablonun ham maddesi olacak temiz bir Ubuntu 22.04 LTS sanal makinesi kurmak.
Adım 2: Cloud-Init ile VM'yi Kurma ve Hazırlama
Cloud-Init, bulut sunucularında yaygın kullanılan, ilk açılışta kullanıcı, SSH anahtarı, network gibi yapılandırmaları yapan bir araçtır. Proxmox'ta da harika çalışır.
1. Oluşturduğunuz VM'nin Hardware sekmesine gidin. Add > CloudInit Drive seçeneğini tıklayın ve bir storage seçin (örn: `local-lvm`).
2. VM'nin Options sekmesine gidin. Boot Order'a tıklayın ve Enable Cloud-Init seçeneğinin işaretli olduğundan emin olun.
3. Cloud-Init sekmesine tıklayın ve ilk yapılandırmayı yapın:
* User: `sysadmin` (veya tercih ettiğiniz kullanıcı adı)
* Password: Güçlü bir geçici parola belirleyin.
* SSH Public Keys: Bu çok önemli! Kendi bilgisayarınızdaki `~/.ssh/id_rsa.pub` veya `id_ed25519.pub` dosyasının içeriğini buraya yapıştırın. Bu, parola ile SSH girişini devre dışı bırakıp daha güvenli anahtar tabanlı girişe geçmenizi sağlayacak.
4. VM'yi başlatın ve konsoluna bağlanın. Artık ISO'dan değil, Cloud-Init diskinden boot edecek ve verdiğiniz kullanıcı/anahtar bilgileriyle otomatik kurulum yapacak.
Adım 3: VM İçinde Temel Yapılandırmalar
VM açıldığında, SSH anahtarınızla giriş yapın (`ssh sysadmin@VM_IP_ADRESI`). Şimdi şablon haline getirmeden önce temizlememiz gereken işlemleri yapalım.
1. **Sistemi Güncelleyelim:**
2. **Temel Faydalı Paketleri Kuralım:** (İhtiyacınıza göre ekleme/çıkarma yapabilirsiniz)
3. **Cloud-Init Verilerini Temizleyelim (KRİTİK ADIM):**
Bu adım, bu VM'den bir şablon oluşturduğumuzda, klonlanan her yeni makinenin kendi benzersiz Cloud-Init verilerini (hostname, IP vs.) alabilmesi için gereklidir.
4. **SSH Sunucusunu Yeniden Yapılandıralım (Opsiyonel ama Önerilir):**
`sudo nano /etc/ssh/sshd_config` komutu ile SSH yapılandırma dosyasını açın ve aşağıdaki satırları bulup değiştirin/ekleyin:
Değişiklikleri kaydedip çıkın ve servisi yeniden başlatın: `sudo systemctl restart sshd`
Adım 4: VM'yi Kapatıp Şablon (Template) Haline Getirme
Artık VM'miz hazır. Son adımlar:
1. VM'yi tamamen kapatın: `sudo shutdown -h now`
2. Proxmox arayüzünde, kapalı durumdaki VM'nize sağ tıklayın.
3. `Convert to template` seçeneğini tıklayın.
4. Onay penceresinde "Yes" deyin.
İşte bu kadar!
Artık sol taraftaki ağaç yapısında, VM'nizin bir şablon simgesi ile gösterildiğini göreceksiniz.
Adım 5: Şablondan Yeni Bir Sunucu (VM) Klonlama
Şimdi sihrin gerçekleşme zamanı!
1. Oluşturduğunuz şablona sağ tıklayın.
2. `Clone` seçeneğini seçin.
3. Yeni VM'nize bir ID ve isim verin (örn: `201-web-server`).
4. Clone Mode olarak `Full Clone` (bağımsız tam kopya) veya `Linked Clone` (ana diske bağlı, daha az yer kaplayan) seçebilirsiniz. Linked Clone hızlı ve tasarrufludur.
5. "Clone" butonuna basın. İşlem birkaç saniye sürecek.
6. Klonlanan yeni VM'nizi bulun, `Options > Cloud-Init` sekmesine gidin.
7. Buradan yeni sunucunuz için IP Adresi, Hostname, SSH Anahtarı gibi bilgileri değiştirin/değiştirmeyin. Cloud-Init, bu VM ilk açılışında bu yeni bilgileri uygulayacak.
8. VM'yi başlatın. Bir dakika içinde, belirlediğiniz IP'den, belirlediğiniz SSH anahtarınızla yeni sunucunuza bağlanabilir olacaksınız!
Son Sözler ve İpuçları
* Bu şablonu, farklı roller (web sunucusu, veritabanı sunucusu) için özelleştirilmiş alt şablonlar oluşturmak için bir base template olarak kullanabilirsiniz.
* Cloud-Init sayesinde, Terraform gibi bir araçla Proxmox API'sini kullanarak bu şablondan tamamen otomatik sunucu üretimi yapabilirsiniz.
* Şablonunuzu düzenli olarak (örneğin her ay) güncellemek için, şablonu tekrar bir VM'ye dönüştürüp (`Convert to VM`), güncellemeleri yapıp, temizleyip ve tekrar şablon haline getirebilirsiniz.
Umarım bu rehber, Proxmox lab'ınızda veya üretim ortamınızda iş akışınızı hızlandırır. Sizler şablonlarınızı hangi özel ayarlarla zenginleştiriyorsunuz? Farklı dağıtımlar (Debian, AlmaLinux) için de benzer rehberler ister misiniz? Yorumlarda buluşalım!

Selam sistemciler!
Neden Şablon (Template) Kullanmalıyım?
- Zaman Kazançı: Tekrarlanan kurulum adımlarını ortadan kaldırır. Dakikalar saniyelere iner.
- Tutarlılık: Tüm sunucularınız aynı temel konfigürasyonla başlar. Bu, yönetimi ve sorun gidermeyi kolaylaştırır.
- Otomasyon Dostu: Terraform, Ansible gibi araçlarla birlikte kullanıldığında bulut benzeri bir deneyim sunar.
- Kaynak Tasarrufu: Şablonlar, klonlandıklarında orijinal disk alanını paylaşır (linked clone), bu da depolama alanından tasarruf sağlar.
Adım 1: Temel Sanal Makineyi (VM) Oluşturma
İlk iş, şablonun ham maddesi olacak temiz bir Ubuntu 22.04 LTS sanal makinesi kurmak.
- Proxmox web arayüzünden, sağ üstteki "Create VM" butonuna tıklayın.
- General sekmesinde bir VM ID ve isim verin (örn: `900-ubuntu-2204-base`).
- OS sekmesinde, Ubuntu 22.04 ISO dosyanızı seçin.
- System sekmesinde varsayılan ayarları bırakabilirsiniz.
- Disks sekmesinde, disk boyutunu ihtiyacınıza göre ayarlayın (örn: 20GB). Storage olarak hızlı bir SSD alanı seçmek performans için iyidir.
- CPU sekmesinde, 2 core yeterli başlangıç için.
- Memory sekmesinde, 2048 MB (2GB) RAM atayın.
- Network sekmesinde, varsayılan bridge (vmbr0) iyidir. Model olarak VirtIO (paravirtualized) seçmek performansı artırır.
- Diğer ayarları olduğu gibi bırakıp VM'i oluşturun.
Adım 2: Cloud-Init ile VM'yi Kurma ve Hazırlama
Cloud-Init, bulut sunucularında yaygın kullanılan, ilk açılışta kullanıcı, SSH anahtarı, network gibi yapılandırmaları yapan bir araçtır. Proxmox'ta da harika çalışır.
1. Oluşturduğunuz VM'nin Hardware sekmesine gidin. Add > CloudInit Drive seçeneğini tıklayın ve bir storage seçin (örn: `local-lvm`).
2. VM'nin Options sekmesine gidin. Boot Order'a tıklayın ve Enable Cloud-Init seçeneğinin işaretli olduğundan emin olun.
3. Cloud-Init sekmesine tıklayın ve ilk yapılandırmayı yapın:
* User: `sysadmin` (veya tercih ettiğiniz kullanıcı adı)
* Password: Güçlü bir geçici parola belirleyin.
* SSH Public Keys: Bu çok önemli! Kendi bilgisayarınızdaki `~/.ssh/id_rsa.pub` veya `id_ed25519.pub` dosyasının içeriğini buraya yapıştırın. Bu, parola ile SSH girişini devre dışı bırakıp daha güvenli anahtar tabanlı girişe geçmenizi sağlayacak.
4. VM'yi başlatın ve konsoluna bağlanın. Artık ISO'dan değil, Cloud-Init diskinden boot edecek ve verdiğiniz kullanıcı/anahtar bilgileriyle otomatik kurulum yapacak.
Adım 3: VM İçinde Temel Yapılandırmalar
VM açıldığında, SSH anahtarınızla giriş yapın (`ssh sysadmin@VM_IP_ADRESI`). Şimdi şablon haline getirmeden önce temizlememiz gereken işlemleri yapalım.
1. **Sistemi Güncelleyelim:**
Bash:
sudo apt update && sudo apt upgrade -y
sudo apt dist-upgrade -y
2. **Temel Faydalı Paketleri Kuralım:** (İhtiyacınıza göre ekleme/çıkarma yapabilirsiniz)
Bash:
sudo apt install -y curl wget net-tools htop nano ufw git
3. **Cloud-Init Verilerini Temizleyelim (KRİTİK ADIM):**
Bu adım, bu VM'den bir şablon oluşturduğumuzda, klonlanan her yeni makinenin kendi benzersiz Cloud-Init verilerini (hostname, IP vs.) alabilmesi için gereklidir.
Bash:
sudo cloud-init clean --logs
sudo rm -rf /var/lib/cloud/instances/*
sudo rm -f /etc/ssh/ssh_host_*
4. **SSH Sunucusunu Yeniden Yapılandıralım (Opsiyonel ama Önerilir):**
`sudo nano /etc/ssh/sshd_config` komutu ile SSH yapılandırma dosyasını açın ve aşağıdaki satırları bulup değiştirin/ekleyin:
NGINX:
PasswordAuthentication no # Parola ile girişi kapat
PermitRootLogin no # Root SSH girişini yasakla
Adım 4: VM'yi Kapatıp Şablon (Template) Haline Getirme
Artık VM'miz hazır. Son adımlar:
1. VM'yi tamamen kapatın: `sudo shutdown -h now`
2. Proxmox arayüzünde, kapalı durumdaki VM'nize sağ tıklayın.
3. `Convert to template` seçeneğini tıklayın.
4. Onay penceresinde "Yes" deyin.
İşte bu kadar!
Adım 5: Şablondan Yeni Bir Sunucu (VM) Klonlama
Şimdi sihrin gerçekleşme zamanı!
1. Oluşturduğunuz şablona sağ tıklayın.
2. `Clone` seçeneğini seçin.
3. Yeni VM'nize bir ID ve isim verin (örn: `201-web-server`).
4. Clone Mode olarak `Full Clone` (bağımsız tam kopya) veya `Linked Clone` (ana diske bağlı, daha az yer kaplayan) seçebilirsiniz. Linked Clone hızlı ve tasarrufludur.
5. "Clone" butonuna basın. İşlem birkaç saniye sürecek.
6. Klonlanan yeni VM'nizi bulun, `Options > Cloud-Init` sekmesine gidin.
7. Buradan yeni sunucunuz için IP Adresi, Hostname, SSH Anahtarı gibi bilgileri değiştirin/değiştirmeyin. Cloud-Init, bu VM ilk açılışında bu yeni bilgileri uygulayacak.
8. VM'yi başlatın. Bir dakika içinde, belirlediğiniz IP'den, belirlediğiniz SSH anahtarınızla yeni sunucunuza bağlanabilir olacaksınız!
Son Sözler ve İpuçları
* Bu şablonu, farklı roller (web sunucusu, veritabanı sunucusu) için özelleştirilmiş alt şablonlar oluşturmak için bir base template olarak kullanabilirsiniz.
* Cloud-Init sayesinde, Terraform gibi bir araçla Proxmox API'sini kullanarak bu şablondan tamamen otomatik sunucu üretimi yapabilirsiniz.
* Şablonunuzu düzenli olarak (örneğin her ay) güncellemek için, şablonu tekrar bir VM'ye dönüştürüp (`Convert to VM`), güncellemeleri yapıp, temizleyip ve tekrar şablon haline getirebilirsiniz.
Umarım bu rehber, Proxmox lab'ınızda veya üretim ortamınızda iş akışınızı hızlandırır. Sizler şablonlarınızı hangi özel ayarlarla zenginleştiriyorsunuz? Farklı dağıtımlar (Debian, AlmaLinux) için de benzer rehberler ister misiniz? Yorumlarda buluşalım!