Esitliklerle Ansible – Playbook

Playbook = {

  • Olayin kalbi
  • Ansible’ye ne veya neleri calistiracagini soyluyor
  • to-do list diyebiliriz
  • her task bir module dedigimiz bir code tarafindan isleniyor
  • module herhangi bir dille yazilmis olabilir
  • YAML🙂
  • Birden fazla task olabilir ve bunlari ansible seri olarak calistirabilir

}

Konu gecmeden once YAML dogrulama icin http://yaml-online-parser.appspot.com bu link i kullanin

Ornek hosts 

Burada hangi kullanici ile baglanabilecegini /etc/ansible/hosts dosyasinda belirttik

noroot@ansible:~/playbooks$ cat /etc/ansible/hosts

[testsunucular]

sunucu1 ansible_user=noroot

Yukarida daha oncesindan farkli olarak [testsunucukar] gurubuna uye olan sunucu1’e noroot kullanicisi ile baglanilacagini belirttik.

ansible_user disinda tanimlarda gorebilirsiniz bu ansible 2.0 sonrasi degisikliklerden biri.

Ornek Playbook

apache_kur.yml

#Ansible YAML file “—” ile baslar

– hosts: sunucu1

# – seviye gibi dusunebilirsiniz, – isaretinden sonra mutlaka bir bosluk verinki algilansin

# – xxx dediginiz anda bir list haline donusuyor tum YAML dosyasi ve – bir dictionary yaratmaya basliyor yani key and value cift araligi (bakiniz python dict ve list)

# Asagidaki satir hemen “hosts” un “h” harfinin seviyesinde baslamali aksi taktirde parse error ile karsilasabilirsiniz

#  remote_user: noroot

#[testsunucular]

#sunucu1 ansible_user=noroot

#Normalde remote_user ile playbook’un hangi kullanici ile sisteme login olacak iken, host dosyasinda yapilacak bir degisiklikle buna gerek kalmiyor. Bakiniz ansible_user

tasks:

# Task icinde birden fazla islem yapacagiz burada yeni bir girdi ve dictinary yaratiyoruz

# Task name -> task hakkinda yardimci olabilecek aciklama

– name: Apache kurulumuna baslayalim

# apt module , mesela asagidaki komut apt-get install apache2 gibi

# Dikkat apt  direk “name” in “n” harfinin hizasindan baslamali

apt: name=apache2 state=latest

# sudo:yes artik ansible 2.0 dan sonra become olarak kullanilmali

become: yes

# Bu arada ansible-playbook apache_kur.yml –list-hosts debug gibi :))

# Uc nokta ile biter

Aslinda asagidaki komut ilgili playbook’un hangi hostlarda calisacagini gosteriyor ama ben parse/hata check icin kullandim.

noroot@ansible:~/playbooks$ ansible-playbook apache_kur.yml –list-hosts

playbook: apache_kur.yml

play #1 (sunucu1): TAGS: []

pattern: [u’sunucu1′]

hosts (1):

sunucu1

Not : pattern deki u –> unicode oldugunu gosteriyor

noroot@ansible:~/playbooks$ ansible-playbook apache_kur.yml –ask-become-pass

SUDO password:

PLAY ***************************************************************************

TASK [setup] *******************************************************************

ok: [sunucu1]

TASK [Apache kurulumuna baslayalim] ********************************************

changed: [sunucu1]

PLAY RECAP *********************************************************************

sunucu1                    : ok=2    changed=1    unreachable=0    failed=0

Not : –ask-become-pass bize sudo sifresini sormasini belirtiyor 

Double Check

noroot@ansibleclient01ubuntu:~$ ps -fe | grep apache

root      2273     1  0 16:42 ?        00:00:00 /usr/sbin/apache2 -k start

www-data  2276  2273  0 16:42 ?        00:00:00 /usr/sbin/apache2 -k start

www-data  2277  2273  0 16:42 ?        00:00:00 /usr/sbin/apache2 -k start

noroot    2401  1231  0 16:47 pts/0    00:00:00 grep –color=auto apache

Ayni komutu tekrar calistirabilirsiniz , bu durumda dikkat ettiyseniz change=0 olacak yani degistirilecek birsey yok anlaminda.

Bu arada task’larin basit tutulmasi oneriliyor , KISS principle –> Keep It Simple Stupid

Playbook debug icin -v sayisini -vv artirmakta -vvv her zaman fayda var🙂

Bir playbook icersindeki tasklari listeleyebilir  

noroot@ansible:~/playbooks$ ansible-playbook apache_kur.yml –list-task

playbook: apache_kur.yml

play #1 (sunucu1): TAGS: []

tasks:

Apache kurulumuna baslayalim TAGS: []

Sonra start-at ile oradan baslatabilir

noroot@ansible:~/playbooks$ ansible-playbook apache_kur.yml –start-at=’Apache kurulumuna baslayalim’

veya –step parametresi ile (y/n) seklinde soru sordurulabiliriz

Bu arada akliniza playbook calisirken ya task’lardan birini calistirirken takilsa ?  Ne oludur ? Vallaha cevap basit orada kalirdi ama devam ettirmek isterseniz bunu bir yolu var ;

 

VM

Posted on 19/01/2016, in Ansible and tagged , . Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: