Razumjeti ključne komponente Ansible-a - 1. dio


Red Hat Certified Specialist u Ansible Automation ispitu (EX407) je novi certifikacijski program od Red Hat koji testira vaše vještine za korištenje Ansible za automatizaciju konfiguraciju sistema i aplikacija.

Serija će se zvati “Certificirani stručnjak za Red Hat za ispit Ansible Automation (EX407)” i pokriva sljedeće ciljeve ispita zasnovane na Red Hat Enterprise Linux 7.5 i Ansible 2.7, koji ćemo pokriti u ovoj Ansible seriji:

Da vidite naknade i prijavite se za ispit u svojoj zemlji, provjerite stranicu ispita Ansible Automation.

U ovom 1. dijelu serije Ansible, raspravljat ćemo o nekim osnovnim pregledima osnovnih komponenti u Ansibleu.

Razumjeti osnovne komponente Ansiblea

Ansible je besplatna platforma za automatizaciju otvorenog koda od RedHat koja vam omogućava da upravljate i kontrolišete više servera sa jedne centralne lokacije. Posebno je idealan kada imate više zadataka koji se ponavljaju koje morate obaviti. Dakle, umjesto da se prijavite na svaki od ovih udaljenih čvorova i izvršavate svoje zadatke, to možete udobno raditi sa centralne lokacije i udobno upravljati svojim serverima.

Ovo je korisno kada želite da održite dosljednost u implementaciji aplikacija, smanjite ljudsku grešku i automatizirate ponavljajuće i pomalo svakodnevne zadatke.

Naravno, postoje i druge alternative za Ansible kao što su Lutka, Chef i Salt. Međutim, Ansible se uglavnom preferira jer je jednostavan za korištenje i učenje.

Zašto je lako naučiti, pitate se? To je zato što Ansible koristi YAML (Još jedan jezik za označavanje) u svojim poslovima konfiguracije i automatizacije koji su čitljivi i prilično laki za praćenje. YAML koristi SSH protokol za komunikaciju sa udaljenim serverima, za razliku od drugih platformi za automatizaciju koje zahtijevaju da instalirate agenta na udaljenim čvorovima da komunicirate s njima.

Prije nego što počnemo s Ansible, važno je da se upoznate s nekim osnovnim terminologijama kako se ne biste izgubili ili zbunili dok idemo naprijed.

Inventar

Inventar je tekstualna datoteka koja sadrži listu servera ili čvorova kojima upravljate i konfigurišete ih. Obično su serveri navedeni na osnovu njihovih imena hostova ili IP adresa.

Datoteka inventara može sadržavati udaljene sisteme definirane njihovim IP adresama kao što je prikazano:

10.200.50.50
10.200.50.51
10.200.50.52

Alternativno, mogu se navesti prema grupama. U primjeru ispod, imamo servere raspoređene u 2 grupe – web servere i baze podataka. Na ovaj način se mogu referencirati prema nazivima njihovih grupa, a ne prema njihovim IP adresama. Ovo dodatno pojednostavljuje procese rada.

[webservers]
10.200.50.60
10.200.50.61

[databases]
10.200.50.70
10.200.50.71

Možete imati više grupa sa više servera ako ste u velikom proizvodnom okruženju.

Playbook

Playbook je skup skripti za upravljanje konfiguracijom koje definiraju kako će se zadaci izvršavati na udaljenim hostovima ili grupi host mašina. Skripte ili uputstva su napisana u YAML formatu.

Na primjer, možete imati datoteku playbook za instaliranje Apache web servera na CentOS 7 i nazvati ga httpd.yml.

Da biste kreirali playbook, pokrenite naredbu.

touch playbook_name.yml

Na primjer, da kreirate playbook pod nazivom httpd, pokrenite naredbu.

touch httpd.yml

YAML datoteka počinje sa 3 crtice kao što je prikazano. Unutar datoteke dodajte sljedeća uputstva.

---
- 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

Gornji priručnik instalira Apache web server na udaljene sisteme definisane kao web serveri u datoteci inventara. Nakon instalacije web servera, Ansible kasnije provjerava da li je Apache web server pokrenut i radi.

Moduli

Moduli su diskretne jedinice koda koje se koriste u priručnicima za izvršavanje naredbi na udaljenim hostovima ili serverima. Svaki modul prati argument.

Osnovni format modula je ključ: vrijednost.

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

U gornjem YAML isječku koda, -name i yum su moduli.

Igra

Ansible play je skripta ili instrukcija koja definira zadatak koji će se izvršiti na serveru. Zbirka drama čini knjigu igranja. Drugim riječima, playbook je zbirka višestrukih predstava, od kojih svaka jasno određuje zadatak koji treba izvršiti na serveru. Predstave postoje u YAML formatu.

Varijable

Ako imate iskustvo u programiranju, onda ste najvjerovatnije koristili varijable. U osnovi, varijabla predstavlja vrijednost. Varijabla može uključivati slova, brojeve i donje crte, ali MORA uvijek početi slovima.

Varijable se koriste kada se instrukcije razlikuju od jednog sistema do drugog. Ovo se posebno odnosi na konfiguraciju ili razne usluge i funkcije.

Postoje 3 glavne vrste varijabli:

  • Playbook varijable
  • Varijable zaliha
  • Posebne varijable

U Ansible, varijable se prvo definiraju pomoću vars k, a zatim slijede ime varijable i vrijednost.

Sintaksa je kako je prikazano:

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

Razmotrite kod ispod.

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

U gornjem primjeru, varijabla ovdje je web_directory i navodi ansible da kreira direktorij na putu /var/www/html/.

Činjenice

Činjenice su svojstva sistema koje Ansible prikuplja kada izvršava playbook na host sistemu. Svojstva uključuju ime hosta, porodicu OS, tip CPU-a i CPU jezgre da spomenemo samo neke.

Da biste imali uvid u broj činjenica dostupnih za upotrebu, izdajte naredbu.

ansible localhost -m setup

Kao što vidite, ogroman broj činjenica je prikazan po defaultu. Možete dodatno suziti rezultate koristeći parametar filtera kao što je prikazano.

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

Konfiguracijski fajlovi

U Ansibleu, konfiguracijska datoteka je datoteka koja sadrži različite postavke parametara koje određuju kako će Ansible raditi. Zadana konfiguracijska datoteka je datoteka ansible.cfg koja se nalazi u /etc/ansible/ direktoriju.

Možete pogledati konfiguracijski fajl tako što ćete pokrenuti:

cat /etc/ansible/ansible.cfg

Kao što možete primijetiti, uključeno je nekoliko parametara kao što su inventar i biblioteka putanje datoteka, sudo korisnik, filteri dodataka, moduli, itd. Ovi parametri se mogu prilagoditi jednostavnim komentiranjem. i modificiranje vrijednosti u njemu.

Osim toga, možete imati više konfiguracijskih datoteka koje rade sa Ansible-om, osim vaše zadane konfiguracijske datoteke.

Sažetak

Nakon što smo pogledali osnovne komponente u Ansible-u, nadamo se da ste u poziciji da ih držite na dohvat ruke i odaberete ih dok idemo naprijed. Pridružite nam se na vašoj sljedećoj temi.