Günümüz dünyasında otomasyon şarttır. BT ortamları, sistem yöneticileri ve geliştiricilerin her şeyi elle yapmaları durumunda buna ayak uyduramayacak kadar karmaşıktır ve sıklıkla çok hızlı ölçeklenmeleri gerekir. Karmaşık görevlerin otomatikleştirilmesi, bunların tamamlanmasını kolaylaştırarak geliştiricilerin sorumluluklarını daha yönetilebilir hale getirir. Bu nedenle BT otomasyonu, onların kuruluşa fayda sağlayan diğer faaliyetlere konsantre olmalarını sağlayacak.

Ansible Nedir ?

Ansible, Red Hat tarafından geliştirilen, BT otomasyonuna yönelik Python tabanlı, açık kaynaklı bir komut satırı aracıdır. Ansible, konfigürasyon yönetimi, uygulama dağıtımı, hizmet içi orkestrasyon ve provizyon gibi BT görevleri için kullanılan açık kaynaklı bir otomasyon aracı veya platformudur. Otomasyon, çok karmaşık olan ve sistem yöneticileri ve geliştiricilerin her şeyi manuel olarak yapmak zorunda kalmaları durumunda buna ayak uydurabilmeleri için genellikle çok hızlı ölçeklenmesi gereken BT ortamları nedeniyle günümüzde çok önemlidir. Otomasyon, karmaşık görevleri basitleştirir; yalnızca geliştiricilerin işlerini daha yönetilebilir hale getirmekle kalmaz, aynı zamanda onların bir kuruluşa değer katan diğer görevlere dikkatlerini odaklamalarına da olanak tanır. Yani zamandan tasarruf sağlar ve verimliliği artırır.

Avantajları

  • Ücretsiz: Ansible open source bir araçtır.
  • Kurulumu ve kullanımı çok basit: Ansible’ın playbook’larını kullanmak için hiçbir özel kodlama becerisine gerek yoktur (daha sonra playbook’lar hakkında daha fazla bilgi verilecektir).
  • Güçlü: Ansible, son derece karmaşık BT iş akışlarını bile modellemenize olanak tanır.
  • Esnek: Nerede dağıtıldığına bakılmaksızın tüm uygulama ortamını düzenleyebilirsiniz. Ayrıca ihtiyaçlarınıza göre özelleştirebilirsiniz.
  • Ajansız: Otomatikleştirmek istediğiniz istemci sistemlerine başka bir yazılım veya güvenlik duvarı bağlantı noktası yüklemenize gerek yoktur. Ayrıca ayrı bir yönetim yapısı kurmanıza da gerek yok.
  • Verimli: Ekstra bir yazılım yüklemenize gerek olmadığından sunucunuzda uygulama kaynakları için daha fazla yer vardır.

Terminoloji

  • Playbook: Ansible playbook, Ansible’ın uzak ana bilgisayarlardaki görevleri otomatikleştirmek için kullanabileceği bir dizi talimat içeren bir dosyadır. Playbook, insanların okuyabileceği bir biçimlendirme dili olan YAML’de yazılmıştır. Bir playbook tipik olarak bir veya daha fazla oyundan, sırayla yürütülen bir görev koleksiyonundan oluşur. Her görev, bir paketin kurulması, bir hizmetin yapılandırılması veya bir dosyanın kopyalanması gibi Ansible’ın yürütebileceği tek bir talimattır. BT operasyon ekipleri, Ansible playbook’larını kullanarak altyapı sağlamayı, konfigürasyon yönetimini, uygulama dağıtımını ve diğer operasyonel görevleri otomatikleştirebilir. Playbooklar, istenen otomasyon iş akışlarını tanımlamanın kısa ve öz ve insanlar tarafından okunabilir bir yolunu sağlayarak altyapı yapılandırmalarının yönetilmesini ve ölçeklendirilmesini kolaylaştırır.
  • Inventory: Envanter, yönettiğiniz ve yapılandırdığınız serveların veya nodeların listesini içeren bir metin dosyasıdır. Genellikle sunucular, bilgisayar adlarına veya IP adreslerine göre listelenir.
  • Modules: Modüller, uzak ana bilgisayarlarda veya serverlarda komutları yürütmek için playbooklarda kullanılan ayrı kod birimleridir. Her modülü bir bağımsız değişken takip eder.
  • Plays: Ansible play, bir sunucuda gerçekleştirilecek görevi tanımlayan bir komut dosyası veya talimattır. Başka bir deyişle, bir playbook, her biri bir sunucuda gerçekleştirilecek görevi açıkça şart koşan birden çok komuttan oluşan bir koleksiyondur.
  • Variables: Programlama geçmişiniz varsa, büyük olasılıkla değişkenleri kullanmışsınızdır. Temel olarak, bir değişken bir değeri temsil eder. Bir değişken harfleri, sayıları ve alt çizgileri içerebilir ancak her zaman harflerle başlamalıdır .
  • Facts: Facts, Ansible tarafından bir ana bilgisayar sisteminde bir playbook yürüttüğünde toplanan sistem özellikleridir. Özellikler, ana bilgisayar adını, işletim sistemi ailesini, CPU tipini ve CPU çekirdeklerini içerir.
  • Configuration Files: Ansible’da bir konfigürasyon dosyası, Ansible’ın nasıl çalıştığını belirleyen farklı parametre ayarları içeren bir dosyadır. Varsayılan yapılandırma dosyası, /etc/ansible/ dizininde bulunan ansible.cfg dosyasıdır.

Ansible Nasıl Kurulur ?

Bu yazıda ansible Linux bir makineye nasıl kurulur ondan bahsedilecektir. Linux olarak Centos 7 tercih edilmiştir. Kurulumdan önce makine üzerinde herhangi bir engelleme ile karşılaşmamak için firewall ve selinux disable edilir.

Kurulum öncesinde ihtiyaç olan uygulamaları kuruyoruz.

$ sudo yum install epel-release

Ansible kurulumunu sağlıyoruz.

$ sudo yum install ansible

Ansible, bildiği tüm sunucuları bir “hosts” dosyası aracılığıyla takip eder. Diğer bilgisayarlarımızla iletişime geçmeden önce bu dosyayı kurmamız gerekiyor.

$ sudo vi /etc/ansible/hosts

[servers] server1 ansible_host=172.82.x.x ansible_user=root

We have done the minimal configuration required to connect to the remote machine using Ansible. Run the following command to ping the host using Ansible ping module.

$ sudo ansible -m ping all

Örnek olarak basit bir playbook oluşturuyoruz.

$ sudo vi /etc/ansible/playbook-start.yml


– name: A simple playbook file
hosts: all
tasks:
– name: Print a sample message
debug:
msg: Hello World. Welcome to Ansible playbooks!
state: present

Playbook çalıştırıyoruz.

$ sudo ansible-playbook /etc/ansible/playbook-start.yml

Ekran çıktısı aşağıdaki gibi olacaktır.

Ansible Playbook Sonucu

Playbook dosyasında yalnızca bir görev tanımlamış olmamıza rağmen iki görevin gerçekleştirildiğine dikkat edin. İlk görev, yönetilen node hakkındaki fact’lerini toplar. Yanıtlanabilir gerçekler, BIOS bilgileri, sistem tarihi ve saati, işletim sistemi türü ve sürümü ve IP adresi gibi JSON formatında sunulan ana bilgisayara özel sistem verilerini ifade eder. Ayrıca blok aygıtları, CPU, RAM ve takas alanı gibi donanım verilerini de içerir. İkinci görev, playbook dosyasında belirtildiği gibi stdout’a basit bir mesaj yazdırır. ok=2, iki görevin başarıyla yürütüldüğünü gösterir.

Ansible’ın tüm fact’lerinin bir listesini almak istiyorsanız aşağıdaki komutu yürütün:

$ sudo ansible -m setup all

Ansible Tüm Fact'leri

Durdurmak içinde aşağıdaki şekilde bir playbook oluşturabiliriz.

$ sudo vi /etc/ansible/playbook-stop.yml


– name: A simple playbook file
hosts: all
tasks:
– name: Print a sample message
debug:
msg: Hello World. Welcome to Ansible playbooks!
state: absent

Bu yazıda basit basit bir playbook çalıştırılıp durdurulmuştur. İlerleyen yazılarda ansible ve docker ile farklı kurulumlar yapılacaktır.


0 yorum

Bir yanıt yazın

Avatar yer tutucu

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir