İkinci yazımızda, Ansible kullanmanın güzel yanlarından biri olan, modül sistemlerinden bahsetmiştik. Yine açık kaynak olduğunu söylediğimiz Ansible’nin, modülleride Github üzerinde kullanıma sunulmaktadır. Bu yazıda modüller ile alakalı olarak, temel olan ve her yerde kullanılabilecek Ansible modüllerinden bahsedeceğim.
İndex
setup module
Bu modül karşıdaki makine hakkında bilgiler almak için kullanılır. Şimdi aşağıdaki komutu makinemizde çalıştıralım.
1 |
ansible all -m setup |
Gördüğünüz gibi Ansible JSON olarak bize makinenin fiziksel(RAM,CPU) diyebileceimiz özellikleri, sanallaştırma sistemi, makinenin ethernet kartları aldığı IP’ler dahil herşey hakkında bilgi vermiş durumda. Ancak makinelerden özel olarak belirlenmiş bir çıktı istediğimizde, her sistem admininin aklına geldiği gibi [grep|sed|awk] komutu yazarak değil, Ansible’nin bu modülüne uygun olan filter argümanı ile gerekli cevapları alacağız. Bu şekilde kullanmanın en güzel yanıda json olarak alınan çıktının bozulmamasıdır.
Mesela makinelerimizdeki OS sistemlerinin ne olduğu hakkında json olarak bilgi almak istersek
1 |
ansible all -m setup -a 'filter=ansible_os_family' |
Not: bu modülde Regular Expression kullanılabilmektedir. ansible all -m setup -a ‘filter=ansible_cpu*’ yaparakta CPU hakkında bütün bilgilere erişebilirsiniz.
shell
Bu modül en çok kullanacağınız, en kullanışlı olan ansible modülüdür diyebilirim. Bu modülü kullanarak, bash veya PowerShell komutları yollamanızı sağlar. Bununla birlikte, her istediğiniz bilginin sizin ekranınıza cevap olarak dönmesini sağlar.
1 2 |
ansible all -m shell -a 'ifconfig' ansible all -m shell -a 'ls -la' |
yum apt module
Malum isminden bildiğiniz gibi repoları kullanarak repolardan program yükleyen yapılar
1 2 |
ansible debian -m apt -a 'name=tree state=present' ansible centos -m yum -a 'name=tree state=present' |
Bütün yazıyı özet geçelim
1 |
ansible -m modulIsmi -a "argumanlar" |
Pek fazla uzun tutmadan, bu bölümde konsol kullanarak, Ansible’yi nasıl kullanacağınız hakkında bilgi vermeye çalıştım. bundan sonraki bölümü okumak parçaları birleştirmeniz adına faydalı olacaktır..
Sıkça kullanılan ve öğrenmenizde faydalı olacak modüller ve yapılar
- Waitfor
- 22 portu açıksa şu işlemi yap gibi işlemler yapabilirsiniz.
- .lock dosyası olarak kitlediğiniz işlemlerde kontrolcü yapı olarakta kullanılabilir.
- Dynamic inventory kullanıyorsanız işinize çok yarar
- file
- Basit dosya işlemleri, ( cp, mv, mkdir, chown, chmod ) ansible yoluyla yapmanızı sağlar
- Bash kullanarak bir kaç satırda yaptığınız işlemleri, daha az korku ile daha hızlı yapmanızı sağlar.
- lookup
- Pek fazla aktif görevi var bakmanızda fayda var.
- Conditional Examples
- if else muhabbetleri
- ignore_error
- Hata fırlatıp çıkmak yerine işleme devam et diyebileceğiniz bir yapı.
- Bu yapı ile programlamada alıştığınız try catch yapılarını oluşturabilirsiniz.
- fetch
- Şu dosyayı şu lokasyona indir.
- mail modüle
- Yapılan işlemlerin sonuçları almada iyi iş yapıyor.
- stat
- Basit dosya işlemlerinizi okunabilir bir şekilde yapmanızı sağlıyor.
- notify
- Şu anda şu işlem yapılıyor diye ekrana yazı yazdırır.
- Cron Module
- Cron işlemler çalıştırmada ve yapılan durumun unutulmaması için gayet güzel.
Ansible’yi bu şekilde kullanmak, eski sistemimize oranla her ne kadar;
- Daha hızlı
- Pratik
- Kullanışlı
olsa da bu şekilde kullanmanızı ÖNERMEM. Çünkü bu sistemi esas öğrenme amacımız, en başta söylediğimiz gibi, tekrar kullanılabilir ve elastik bir şekilde oluşturarak daha sonraki operasyonlarımız için yapılar oluşturmak. Bu yapıyıda bir sonraki yazımda olan ansible-playbook yapıları ile sağlayacağız. Herkese iyi günler.
Umarım faydanıza olur.