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
date
komutu ç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
,script
vb.).Modül, “nasıl yapılacağını” bilen kod parçacığıdır. Örneğin
yum
modülüyle paket kurulur,service
modü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: web
veyahosts: db
diyerek 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
,date
komutuPlay2 →
hosts: web
, sunucuyahttpd
kurar 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/hosts
dışında ise,-i
parametresiyle 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.yml
ile.
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?