Ansible'ın Temel Bileşenlerini Anlayın - Bölüm 1


Red Hat Sertifikalı Ansible Otomasyon Uzmanı sınavı (EX407), Red Hat tarafından otomatikleştirmek için Ansible'ı kullanma becerilerinizi test eden yeni bir sertifika programıdır. sistemlerin ve uygulamaların konfigürasyonu.

Seri, "Ansible Otomasyon sınavında Red Hat Sertifikalı Uzmanı (EX407)" başlığını taşıyacak ve Red Hat Enterprise Linux 7.5 ve 'e dayanan aşağıdaki sınav hedeflerini kapsayacaktır. Bu Ansible serisinde ele alacağımız Ansible 2.7:

Ücretleri görüntülemek ve ülkenizdeki bir sınava kaydolmak için Ansible Automation sınav sayfasını kontrol edin.

Ansible serisinin bu 1. Bölümünde, Ansible'daki temel bileşenlere ilişkin bazı temel genel bakışları tartışacağız.

Ansible'ın Temel Bileşenlerini Anlayın

Ansible, RedHat'ın sunduğu, birden fazla sunucuyu tek bir merkezi konumdan yönetmenize ve kontrol etmenize olanak tanıyan ücretsiz ve açık kaynaklı bir otomasyon platformudur. Gerçekleştirilmesi gereken birden fazla ve tekrarlanan göreviniz olduğunda özellikle idealdir. Böylece bu uzak düğümlerin her birine giriş yapıp görevlerinizi yerine getirmek yerine, bunu merkezi bir konumdan rahatlıkla yapabilir ve sunucularınızı rahatlıkla yönetebilirsiniz.

Bu, uygulama dağıtımında tutarlılığı korumak, insan hatasını azaltmak ve tekrarlanan ve biraz sıradan görevleri otomatikleştirmek istediğinizde faydalıdır.

Elbette Ansible'ın Puppet, Chef ve Salt gibi başka alternatifleri de var. Ancak Ansible çoğunlukla tercih ediliyor çünkü kullanımı kolay ve öğrenmesi basit.

Sorabileceğinizi öğrenmek neden bu kadar basit? Bunun nedeni, Ansible'ın yapılandırma ve otomasyon işlerinde insanlar tarafından okunabilen ve takip edilmesi oldukça kolay olan YAML'i (Yet Another Markup Language) kullanmasıdır. YAML, uzak sunucularla iletişim kurmak için uzak düğümlere bir aracı yüklemenizi gerektiren diğer otomasyon platformlarının aksine, uzak sunucularla iletişim kurmak için SSH protokolünü kullanır.

Ansible'a başlamadan önce, ilerledikçe kaybolmamanız veya kafanızın karışmaması için bazı temel terminolojileri bilmeniz önemlidir.

Envanter

Envanter, yönettiğiniz ve yapılandırdığınız sunucuların veya düğümlerin listesini içeren bir metin dosyasıdır. Genellikle sunucular ana bilgisayar adlarına veya IP adreslerine göre listelenir.

Bir envanter dosyası, gösterildiği gibi IP adresleriyle tanımlanan uzak sistemleri içerebilir:

10.200.50.50
10.200.50.51
10.200.50.52

Alternatif olarak gruplara göre de listelenebilirler. Aşağıdaki örnekte, web sunucuları ve veritabanları olmak üzere 2 gruba yerleştirilmiş sunucularımız var. Bu şekilde IP adreslerine göre değil grup adlarına göre referans alınabilir. Bu, operasyon süreçlerini daha da basitleştirir.

[webservers]
10.200.50.60
10.200.50.61

[databases]
10.200.50.70
10.200.50.71

Büyük bir üretim ortamındaysanız, birden çok sunucuya sahip birden çok grubunuz olabilir.

Başucu Kitabı

Başucu kitabı, görevlerin uzak ana makinelerde veya bir grup ana makinede nasıl yürütüleceğini tanımlayan bir dizi yapılandırma yönetimi komut dosyasıdır. Komut dosyaları veya talimatlar YAML biçiminde yazılmıştır.

Örneğin, Apache web sunucusunu CentOS 7'ye yüklemek için bir playbook dosyanız olabilir ve onu httpd.yml olarak adlandırabilirsiniz.

Başucu kitabını oluşturmak için komutu çalıştırın.

touch playbook_name.yml

Örneğin, httpd adında bir başucu kitabı oluşturmak için komutu çalıştırın.

touch httpd.yml

YAML dosyası gösterildiği gibi 3 tire ile başlar. Dosyanın içine aşağıdaki talimatları ekleyin.

---
- name: This installs and starts Apache webserver
  hosts: webservers

  tasks:
  - name: Install Apache Webserver 
    yum:   name=httpd  state=latest

 - name: check httpd status
    service:   name=httpd  state=started

Yukarıdaki başucu kitabı, envanter dosyasında web sunucuları olarak tanımlanan uzak sistemlere Apache web sunucusu'nu yükler. Web sunucusunun kurulumundan sonra Ansible, Apache web sunucusunun başlatılıp çalıştırılmadığını kontrol eder.

Modüller

Modüller, uzak ana makinelerde veya sunucularda komutları yürütmek için başucu kitaplarında kullanılan ayrı kod birimleridir. Her modülün ardından bir argüman gelir.

Bir modülün temel biçimi anahtar: değer'dir.

- name: Install apache packages 
    yum:   name=httpd  state=present

Yukarıdaki YAML kod snippet'inde -name ve yum modüllerdir.

Oynatmalar

Ansible oynatma, bir sunucuda gerçekleştirilecek görevi tanımlayan bir komut dosyası veya talimattır. Bir oyun koleksiyonu bir başucu kitabı oluşturur. Başka bir deyişle, bir oyun kitabı, her biri bir sunucuda gerçekleştirilecek görevi açıkça belirten birden fazla oyunun bir koleksiyonudur. Oynatmalar YAML formatında mevcuttur.

Değişkenler

Programlama konusunda bir geçmişiniz varsa, büyük olasılıkla değişkenleri kullanmışsınızdır. Temel olarak değişken bir değeri temsil eder. Bir değişken harfler, sayılar ve alt çizgiler içerebilir ancak her zaman harflerle başlamalıdır ZORUNLU.

Değişkenler, talimatlar bir sistemden diğerine değiştiğinde kullanılır. Bu özellikle yapılandırma veya çeşitli hizmetler ve özellikler sırasında geçerlidir.

3 ana değişken türü vardır:

  • Başucu kitabı değişkenleri
  • Envanter değişkenleri
  • Özel değişkenler

Ansible'da değişkenler ilk önce vars k kullanılarak tanımlanır, ardından değişken adı ve değeri gelir.

Sözdizimi gösterildiği gibidir:

vars:
Var name1: ‘My first variable’
	Var name2:  ‘My second variable’

Aşağıdaki kodu göz önünde bulundurun.

- hosts: webservers
  vars: 
    - web_directory:/var/www/html/

Yukarıdaki örnekte, buradaki değişken web_directory'dir ve ansible'a /var/www/html/ yolunda bir dizin oluşturması talimatını verir.

Gerçekler

Gerçekler, Ansible tarafından ana sistemde bir çalışma kitabını çalıştırırken toplanan sistem özellikleridir. Özellikler arasında ana bilgisayar adı, işletim sistemi ailesi, CPU türü ve CPU çekirdekleri yer alır.

Kullanılabilir gerçeklerin sayısına bir göz atmak için komutu verin.

ansible localhost -m setup

Gördüğünüz gibi çok sayıda gerçek varsayılan olarak görüntüleniyor. Gösterildiği gibi filtre parametresini kullanarak sonuçları daha da daraltabilirsiniz.

ansible localhost -m setup -a "filter=*ipv4"

Yapılandırma Dosyaları

Ansible'da yapılandırma dosyası, Ansible'ın nasıl çalışacağını belirleyen farklı parametre ayarlarını içeren bir dosyadır. Varsayılan yapılandırma dosyası, /etc/ansible/ dizininde bulunan ansible.cfg dosyasıdır.

Aşağıdakileri çalıştırarak yapılandırma dosyasını görüntüleyebilirsiniz:

cat /etc/ansible/ansible.cfg

Gördüğünüz gibi envanter ve kütüphane dosya yolları, sudo kullanıcısı, eklenti filtreleri, modüller vb. gibi çeşitli parametreler eklenmiştir. Bu parametreler, yalnızca yorum yazılarak ayarlanabilir. dışarı ve içindeki değerleri değiştirmek.

Ek olarak, varsayılan yapılandırma dosyanızın dışında Ansible ile çalışan birden fazla yapılandırma dosyanız olabilir.

Özet

Ansible'daki temel bileşenlere baktıktan sonra, bunları parmaklarınızın ucunda tutabileceğinizi ve ilerledikçe bunları seçebileceğinizi umuyoruz. Bir sonraki konunuzda bize katılın.