Ansible Playbooks
1. Ansible Playbook Nedir?
Playbook, Ansible’ın temel orkestrasyon dilidir.
YAML formatında yazılır.
İçinde, hangi sunucularda (hosts) hangi işlemlerin (tasks) yapılacağını tanımlarsınız.
Örnek Senaryolar
Tek bir sunucuda
datekomutu çalıştırmakYüzlerce sunucuda paket kurmak, servis başlatmak
Özel script’leri çalıştırmak, disk yapılandırmak, VM’leri otomatik oluşturmak vb.
2. Yapıtaşları: Play → Tasks → Modules
Play
Playbook, aslında bir liste (array) şeklinde yazılır.
Bu listenin her bir elemanına “Play” denir.
Her “Play”, hangi sunuculara işlem yapılacağını (hosts) ve o sunucularda hangi tasks sırasıyla çalıştırılacağını belirtir.
Tasks
Bir Play içindeki “tasks” listesi, adım adım yapılacak eylemleri ifade eder.
Sıralama önemlidir: İlk task biter, ikinci task başlar.
Örnek task’lar: Komut çalıştırma, paket kurma, servis başlatma, script çalıştırma.
Modules
Her “task” bir modül kullanır (
command,yum,service,scriptvb.).Modül, “nasıl yapılacağını” bilen kod parçacığıdır. Örneğin
yummodülüyle paket kurulur,servicemodülüyle servis başlatılır.
3. Basit Bir Örnek Playbook
Aşağıdaki playbook’ta tek bir “play” var, bu play “localhost” üzerinde 4 task çalıştırıyor:
Play’in Adı: “Play 1” (isteğe bağlı bir açıklama).
hosts: localhost: Bütün task’lar “localhost” üzerinde çalışır.
Envanterde “localhost” tanımlıdır.
İsterseniz
hosts: webveyahosts: dbdiyerek gruplar hedefleyebilirsiniz (envanterde tanımlı olmalı).
Tasks:
command: date(sistem tarihi)script: test_script.sh(bir script dosyası çalıştırır)yum:(httpd paketini kurar)service:(httpd servisini başlatır)
Önemli: Task’lar listesinde hangi sırada yazarsanız, o sırada çalışır. Örneğin httpd paketi kurulduktan sonra servis başlatılması mantıklı.
4. Birden Fazla “Play” İçeren Playbook
Bir playbook’ta birden fazla “play” tanımlayarak, farklı aşamalarda farklı sunuculara işlem yaptırabilirsiniz:
Play1 →
hosts: localhost,datekomutuPlay2 →
hosts: web, sunucuyahttpdkurar ve başlatır
Bunlar sırayla çalışır: önce Play1 biter, sonra Play2 başlar.
5. Playbook Nasıl Çalıştırılır?
playbook.yml: Yukarıdaki örnekleri kaydettiğiniz YAML dosyası.Eğer envanter dosyanız (inventory) varsayılan
/etc/ansible/hostsdışında ise,-iparametresiyle belirtmeniz gerekir:Daha fazla seçenek için:
6. Modüller (Modules) ve Dokümantasyon
Ansible, yüzlerce modül ile gelir (örn. copy, file, lineinfile, shell, apt, yum, service, user vb.).
Bilgi almak için:
Tüm mevcut modülleri listeler.
ansible-doc <modül_adı>komutuyla belirli modülün kullanımı incelenebilir.
7. Özet
Playbook: Ansible’ın “ne yapılacak, hangi sırayla, hangi sunucularda” sorusuna cevaptır.
YAML formatında yazılır, liste yapısıyla bir veya birden çok “play” içerebilir.
Her Play: “hosts” + bir “tasks” listesi
“tasks” içinde sırasıyla modülleri çağırırsınız (komut, servis, paket kurma vb.).
Çalıştırma:
ansible-playbook playbook.ymlile.
Bu şekilde, Ansible Playbook’ların temel yapısını öğrendiniz. Sonraki adımlarda, farklı modüllerle ve daha gelişmiş özelliklerle (değişkenler, koşullu görevler, loop’lar vb.) playbook’ları zenginleştirip otomasyonunuzu genişletebilirsiniz.
Last updated
Was this helpful?