Birden fazla VDS sunucusu yönetiyorsanız, elle yapılan kurulumların ne kadar zaman aldığını bilirsiniz. İşte tam bu noktada Ansible devreye giriyor. Ansible Playbook ile birkaç satır kod yazarak onlarca sunucuyu aynı anda yapılandırabilir, hem zamandan hem de sinirlerinizden tasarruf edebilirsiniz. Bu yazıda, sıfırdan bir Ansible Playbook hazırlayıp VDS sunucunuza ilk paketleri nasıl kuracağınızı anlatıyorum.
Ansible Nedir ve Neden VDS Kurulumunda Kullanılır?
Ansible, ajan gerektirmeyen bir yapılandırma yönetim aracıdır. SSH üzerinden hedef makinelere bağlanır. VDS gibi sanal sunucularda ajan kurma derdiniz olmaz. Tek ihtiyacınız bir kontrol makinesi (genelde kendi bilgisayarınız) ve hedef sunucuların IP adresleri. Örneğin, 3 farklı veri merkezinde 10 VDS'niz varsa, her birine SSH ile girip tek tek kurulum yapmak yerine tek bir playbook ile tüm işlemi halledebilirsiniz.
Adım 1: Ansible'ı Kurun ve Temel Yapılandırmayı Yapın
Öncelikle kontrol makinenize Ansible kurmanız gerekiyor. Ubuntu/Debian kullanıyorsanız şu komut işinizi görür: sudo apt update && sudo apt install ansible -y. CentOS/RHEL için sudo yum install epel-release && sudo yum install ansible -y.
Kurulumdan sonra /etc/ansible/hosts dosyasına VDS sunucularınızı tanımlayın. Örnek bir envanter:
[vds_servers] 192.168.1.101 ansible_user=root 192.168.1.102 ansible_user=root 192.168.1.103 ansible_user=rootBurada SSH anahtarlarınızı eklemeyi unutmayın. Parola ile bağlanmak isterseniz ansible_ssh_pass parametresini kullanabilirsiniz ama güvenlik açısından önerilmez.
Adım 2: İlk Playbook'unuzu Oluşturun
Playbook, yapılacak işlerin sıralandığı bir YAML dosyasıdır. Basit bir örnekle başlayalım: Tüm VDS'lere Nginx web sunucusu kuralım ve temel güvenlik duvarı ayarlarını yapalım. Dosyayı vds-kurulum.yml olarak kaydedin:
--- - name: Temel VDS Kurulumu hosts: vds_servers become: yes tasks: - name: Paket listesini güncelle apt: update_cache: yes cache_valid_time: 3600 when: ansible_os_family == "Debian" - name: Nginx kur apt: name: nginx state: latest when: ansible_os_family == "Debian" - name: Firewall kuralı ekle (SSH) ufw: rule: allow port: '22' - name: Nginx servisini başlat service: name: nginx state: started enabled: yesBu playbook Debian tabanlı sunucular için uygun. RHEL tabanlı farklılıklarını ayrı bir yazıda ele alacağız.
Adım 3: Playbook'u Çalıştırın ve Sonuçları İzleyin
Playbook'u çalıştırmak için terminalde şu komutu kullanın: ansible-playbook -i /etc/ansible/hosts vds-kurulum.yml. İlk çalıştırmada bağlantı testleri yapılır, ardından her görev sırayla işletilir. Çıktıda yeşil (başarılı), sarı (değişiklik yapıldı) veya kırmızı (hata) renkler göreceksiniz. Örneğin, bir sunucuda Nginx zaten kuruluysa değişiklik yapılmaz ve sarı ile işaretlenir.
Eğer hata alırsanız, hata mesajını okuyun. Genelde SSH anahtarı sorunları veya paket kaynağı hataları olur. -vvv parametresiyle detaylı hata ayıklama yapabilirsiniz.
Sık Karşılaşılan Hatalar ve Çözümleri
1. SSH Bağlantı Hatası
“Permission denied (publickey)” hatası alıyorsanız, kontrol makinesindeki SSH anahtarını VDS'ye eklememişsinizdir. ssh-copy-id root@sunucu_ip komutuyla anahtarı kopyalayın.
2. Paket Yöneticisi Uyumsuzluğu
Playbook'unuz Deb paket yöneticisi kullanırken CentOS’ta çalıştırmaya kalkarsanız hata alırsınız. Bunun için when: ansible_os_family == "Debian" gibi koşullar ekleyin ya da ayrı playbook'lar oluşturun.
3. Görev Zaman Aşımı
Büyük paketlerin yüklenmesi uzun sürebilir. timeout parametresini artırarak çözebilirsiniz. Örneğin: apt: name=nginx state=latest timeout=300.
İleri Seviye: Değişkenler ve Şablonlar
Playbook'unuzu daha esnek hale getirmek için değişkenler kullanabilirsiniz. Örneğin, her VDS için farklı bir domain adı atamak isteyebilirsiniz. vars bölümünde tanımlayıp, konfigürasyon dosyalarında {{ domain }} şeklinde çağırabilirsiniz. Ayrıca template modülü ile dinamik conf dosyaları oluşturabilirsiniz.
Bir örnek: vars: domain: ornek.com ve template: src=nginx.conf.j2 dest=/etc/nginx/sites-available/{{ domain }} şeklinde kullanılır.
Sonuç
Ansible Playbook ile VDS kurulumu, özellikle birden fazla sunucu işlettiğinizde hayat kurtarır. İlk başta öğrenmesi biraz zor gelse de, bir kez alıştıktan sonra elle yapılan her işlemin ne kadar gereksiz olduğunu fark edeceksiniz. Deneyin, hata yapın, düzeltin ve otomasyonun tadını çıkarın. HostingServer.com.tr olarak sizin için daha fazla otomasyon rehberi hazırlıyoruz. Takipte kalın!