Razumevanje osnovnih komponent Ansible - 1. del


Red Hat Certified Specialist za Ansible Automation izpit (EX407) je novi certifikacijski program podjetja Red Hat, ki preizkuša vaše sposobnosti uporabe Ansible za avtomatizacijo konfiguracije sistemov in aplikacij.

Serija bo nosila naslov »Red Hat Certified Specialist in Ansible Automation Exam (EX407)« in zajema naslednje cilje izpitov, ki temeljijo na Red Hat Enterprise Linux 7.5 in Ansible 2.7, kar bomo obravnavali v tej seriji Ansible:

Če si želite ogledati pristojbine in se prijaviti na izpit v svoji državi, preverite stran za izpit Ansible Automation.

V tem 1. delu serije Ansible bomo obravnavali nekaj osnovnih pregledov osnovnih komponent v programu Ansible.

Ansible je brezplačna in odprtokodna platforma za avtomatizacijo podjetja RedHat, ki vam omogoča upravljanje in nadzor več strežnikov z enega osrednjega mesta. Še posebej idealno je, če imate več in ponavljajočih se nalog, ki jih je treba opraviti. Namesto da se prijavite v vsakega od teh oddaljenih vozlišč in opravite svoje naloge, lahko to udobno storite z osrednje lokacije in udobno upravljate s svojimi strežniki.

To je koristno, če želite ohraniti doslednost pri uvajanju aplikacij, zmanjšati človeške napake in avtomatizirati ponavljajoče se in nekoliko vsakdanje naloge.

Seveda obstajajo tudi druge alternative za Ansible, kot so lutka, kuhar in sol. Vendar je Ansible večinoma zaželen, ker je enostaven za uporabo in enostaven za učenje.

Zakaj je preprosto izvedeti, da boste morda vprašali? Razlog za to je, da Ansible pri konfiguraciji in avtomatizaciji opravi YAML (še en označevalni jezik), ki je razumljiv človeku in mu je zelo enostavno slediti. YAML uporablja SSH protokol za komunikacijo z oddaljenimi strežniki, za razliko od drugih avtomatizacijskih platform, ki zahtevajo namestitev agenta na oddaljenih vozliščih za komunikacijo z njimi.

Preden začnemo z Ansible, je pomembno, da se seznanite z nekaterimi osnovnimi terminologijami, da se med napredovanjem ne boste izgubili ali zmedli.

Popis je besedilna datoteka, ki vsebuje seznam strežnikov ali vozlišč, ki jih upravljate in konfigurirate. Običajno so strežniki navedeni na podlagi njihovih imen gostiteljev ali naslovov IP.

Datoteka z inventarjem lahko vsebuje oddaljene sisteme, ki jih določajo njihovi naslovi IP, kot je prikazano:

10.200.50.50
10.200.50.51
10.200.50.52

Lahko pa jih naštejemo po skupinah. V spodnjem primeru imamo strežnike, uvrščene v dve skupini - spletni strežniki in zbirke podatkov. Tako se nanje lahko sklicuje glede na imena skupin in ne na naslove IP. To dodatno poenostavi postopke delovanja.

[webservers]
10.200.50.60
10.200.50.61

[databases]
10.200.50.70
10.200.50.71

Če imate veliko produkcijsko okolje, lahko imate več skupin z več strežniki.

Playbook je niz skriptov za upravljanje konfiguracije, ki določajo, kako se naloge izvajajo na oddaljenih gostiteljih ali skupini gostiteljskih strojev. Skripti ali navodila so napisana v obliki YAML.

Na primer, lahko imate datoteko playbook, da namestite spletni strežnik Apache na CentOS 7 in ga pokličete httpd.yml.

Če želite ustvariti igro, zaženite ukaz.

$ touch playbook_name.yml

Če želite na primer ustvariti knjigo predvajanja, imenovano httpd, zaženite ukaz.

$ touch httpd.yml

Datoteka YAML se začne s 3 vezaji, kot je prikazano. V datoteko dodajte naslednja navodila.

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

Zgornja knjiga iger namesti spletni strežnik Apache na oddaljene sisteme, ki so v datoteki inventarja definirani kot spletni strežniki. Po namestitvi spletnega strežnika Ansible pozneje preveri, ali se spletni strežnik Apache zažene in izvaja.

Moduli so diskretne enote kode, ki se uporabljajo v knjigah za predvajanje ukazov na oddaljenih gostiteljih ali strežnikih. Vsakemu modulu sledi argument.

Osnovna oblika modula je ključ: vrednost.

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

V zgornjem delčku kode YAML sta -name in yum modula.

Ansible play je skript ali navodilo, ki določa nalogo, ki jo je treba izvesti na strežniku. Zbirka iger predstavlja knjigo iger. Z drugimi besedami, knjiga iger je zbirka več iger, od katerih vsaka jasno določa nalogo, ki jo je treba izvesti na strežniku. Predstave obstajajo v obliki YAML.

Če imate izkušnje s programiranjem, ste najverjetneje uporabili spremenljivke. V osnovi spremenljivka predstavlja vrednost. Spremenljivka lahko vključuje črke, številke in podčrtaje, vendar se MORA vedno začeti s črkami.

Spremenljivke se uporabljajo, kadar se navodila od sistema do sistema razlikujejo. To še posebej velja med konfiguracijo ali različnimi storitvami in funkcijami.

Obstajajo 3 glavne vrste spremenljivk:

  • Spremenljivke Playbook
  • Spremenljivke inventarja
  • Posebne spremenljivke

V programu Ansible so spremenljivke najprej definirane z uporabo vars k, nato pa ime spremenljivke in vrednost.

Sintaksa je prikazana:

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

Upoštevajte spodnjo kodo.

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

V zgornjem primeru je spremenljivka tukaj web_directory in naroča ansibleju, da ustvari imenik v/var/www/html/path.

Dejstva so sistemske lastnosti, ki jih zbere Ansible, ko izvrši igro v gostiteljskem sistemu. Lastnosti vključujejo ime gostitelja, družino OS, vrsto CPU in jedra CPU, da omenimo nekaj.

Če si želite ogledati število dejstev, ki so na voljo za uporabo, izdajte ukaz.

$ ansible localhost -m setup

Kot lahko vidite, je bilo privzeto prikazanih ogromno dejstev. Rezultate lahko nadalje zožite s parametrom filtra, kot je prikazano.

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

V programu Ansible je konfiguracijska datoteka datoteka, ki vsebuje različne nastavitve parametrov, ki določajo, kako deluje Ansible. Privzeta konfiguracijska datoteka je datoteka ansible.cfg, ki se nahaja v imeniku/etc/ansible /.

Konfiguracijsko datoteko si lahko ogledate tako, da zaženete:

$ cat /etc/ansible/ansible.cfg

Kot lahko opazite, je vključenih več parametrov, kot so poti datotek inventarja in knjižnice, uporabnik sudo, filtri vtičnikov, moduli itd. Te parametre lahko prilagodite tako, da jih preprosto komentirate in spremenite vrednosti v njih.

Poleg tega lahko poleg privzete konfiguracijske datoteke imate več datotek s konfiguracijo, ki delujejo z Ansible.

Po pregledu osnovnih komponent v programu Ansible upamo, da jih boste lahko držali na dosegu roke in jih izbrali, ko bomo napredovali naprej. Pridružite se nam pri naslednji temi.