Adım 1: Ansible Kurulumu
Ansible'ı kurmak, aslında düşündüğünüz kadar zor değil. Eğer Linux tabanlı bir işletim sistemi kullanıyorsanız, terminal üzerinden Ansible’ı kolayca kurabilirsiniz. İster Ubuntu, ister CentOS kullanın, aşağıdaki adımları takip ederek Ansible’ı sisteminize yükleyebilirsiniz.
Ubuntu için:
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository --yes --update ppa:ansible/ansible
sudo apt install ansible
CentOS için:
sudo yum install epel-release
sudo yum install ansible
Kurulum işlemi tamamlandığında, Ansible’ın doğru kurulduğundan emin olmak için terminalde aşağıdaki komutu çalıştırarak versiyon bilgisini kontrol edebilirsiniz:
ansible --version
Eğer her şey düzgün gitmişse, Ansible sürümünü ekranda görmelisiniz.
Adım 2: Ansible Konfigürasyonu
Ansible’ın temel işlevselliği, hedef makineleri yönetmek için SSH bağlantılarını kullanmasıdır. Bu nedenle, yönetilecek makinelerle doğru bağlantıyı kurmanız gerekecek.
Öncelikle, Ansible’ın bağlantı yapacağı makinelerin IP adreslerini ya da ana bilgisayar isimlerini içeren bir envanter dosyası oluşturmanız gerekir. Bu dosya, genellikle `hosts` olarak adlandırılır. Aşağıdaki gibi bir dosya yapısı oluşturabilirsiniz:
[web_servers]
192.168.1.10
192.168.1.11
[db_servers]
192.168.1.20
Bu örnekte, iki grup oluşturduk: `web_servers` ve `db_servers`. Bu gruptaki makinelerle çalışacak playbook’ları yazacağız.
Adım 3: İlk Playbook’unuzu Yazın
Artık Ansible’ı kurduğunuz ve konfigüre ettiğiniz için, ilk Playbook’unuzu yazmaya hazırsınız. Playbook, Ansible’ın çalıştıracağı bir dizi görevden oluşur. Playbook yazarken YAML formatını kullanacağız, çünkü bu format insan tarafından okunabilir ve oldukça sezgisel.
Aşağıda, web sunucusuna Nginx yüklemek için yazılmış basit bir Playbook örneği bulunmaktadır.
---
- name: Nginx'i yükle
hosts: web_servers
become: yes
tasks:
- name: Nginx paketini kur
apt:
name: nginx
state: present
- name: Nginx servisini başlat
service:
name: nginx
state: started
enabled: yes
Bu Playbook, iki ana görevden oluşur:
1. Nginx paketini kurmak - `apt` modülü ile Nginx paketini yüklüyoruz.
2. Nginx servisini başlatmak - `service` modülü ile Nginx servisini başlatıyoruz ve otomatik olarak başlatılması için etkinleştiriyoruz.
Bu Playbook'u çalıştırmak için şu komutu kullanabilirsiniz:
ansible-playbook -i hosts nginx-playbook.yml
Bu komut, `hosts` envanter dosyasındaki `web_servers` grubundaki tüm makinelerde Nginx’i yükler ve başlatır.
Adım 4: Playbook İlerlemesini Görüntüleyin
Playbook çalıştırıldığında, Ansible her bir görev için ilerlemeyi gösterir. Bu, hangi görevlerin başarıyla tamamlandığını ve hangi görevlerin hata verdiğini hızlıca görmenizi sağlar. Aşağıdaki gibi bir çıktı alabilirsiniz:
PLAY [Nginx'i yükle] *
TASK [Nginx paketini kur] *
ok: [192.168.1.10]
ok: [192.168.1.11]
TASK [Nginx servisini başlat] *
ok: [192.168.1.10]
ok: [192.168.1.11]
PLAY RECAP
192.168.1.10 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
192.168.1.11 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Bu çıktı, her iki sunucuda da Nginx’in başarıyla yüklendiğini ve çalıştığını gösteriyor.
Adım 5: Daha İleri Seviye Playbook Özellikleri
Ansible ile sadece temel görevleri değil, daha karmaşık yapılandırmaları da otomatikleştirebilirsiniz. Örneğin, çoklu görevleri koşullu olarak çalıştırmak veya birden fazla sunucuda aynı anda işlemleri yönetmek gibi. Ayrıca, Ansible playbook'larında değişkenler kullanarak yapılandırmanızı daha esnek hale getirebilirsiniz.
Örnek olarak, bir değişken kullanarak bir sunucuda paket güncellemesi yapmak için aşağıdaki gibi bir Playbook yazabilirsiniz:
---
- name: Paket güncellemesi yap
hosts: all
become: yes
tasks:
- name: Güncel paketleri yükle
apt:
upgrade: dist
Bu Playbook, tüm sunucularda mevcut paketleri güncelleyecektir.
Sonuç
Ansible, sistem yönetimini çok daha verimli hale getiriyor. Kurulum ve yapılandırma işlemleri kolay, Playbook yazmak ise sezgisel ve güçlüdür. Ansible ile birden fazla sunucuyu aynı anda yönetebilir, sisteminizi otomatize edebilir ve zaman kazanabilirsiniz. Eğer henüz Ansible’ı keşfetmediyseniz, şimdi tam zamanı!
Aşağıdaki gibi küçük adımlarla başlayarak daha karmaşık yapılandırmalar ve dağıtımlar için güçlü Playbook'lar yazabilirsiniz. Unutmayın, her şey küçük bir adımla başlar!