Preberite več o programu Answer Playbook za avtomatizacijo nalog

Preberite več o programu Ansible Playbook za avtomatizacijo nalog.


Prej smo razpravljali o predstavitvi Ansibleja, priročniku za namestitev, nato pa še o Playbook-u in njegovih gradnikih.

Kaj je Answer Playbook?

Igralna knjiga je jezik za samodejni odgovor. Gre za preprosto datoteko z naborom navodil. V otroških zvezkih smo opredelili, kaj želimo, da počnejo Ansible. Playbooks vsebuje predloge, ki izvajajo naloge, in te naloge izvajajo module. Njihove naloge se izvajajo zaporedno.

Lahko je na primer preprosto tako, da zaporedje izvajate niz ukazov na različnih strežnikih in znova zaženete te strežnike po vrstnem redu. Lahko pa je tudi tako zapleteno kot uvajanje in zagotavljanje na stotine VM-jev v javnem in zasebnem oblaku, vključno z izravnavo obremenitve, spremljanjem, nastavitvami omrežja.

Jezik Playbook

Playbooks so preproste datoteke, zapisane v kodi YAML.

YAML je jezik za serijsko obdelavo podatkov. Je človeško in strojno berljiv. Za pisanje kod YAML ne potrebujete nobene posebne veščine kodiranja. Jezik za serializacijo podatkov si lahko predstavljate kot prevajalca za razčlenitev celotne strukture podatkov in njihovo serijo v vrstnem redu, ki ga je mogoče znova rekonstruirati za kasnejšo uporabo. To rekonstruirano strukturo podatkov lahko uporabite v istem okolju ali celo v drugem okolju.

Spodaj je vzorčna datoteka YAML za namestitev mysql:


– ime: Namestite MySQL
gostitelji: geekflare-mysql-storitev
naloge:
– ime: Namestite MySQL
dejanje: $ ansible_pkg_mgr pkg = mysql-stanje strežnika = nameščeno
– ime: Dodajte Python MySQL DB
dejanje: $ ansible_pkg_mgr pkg = stanje python-mysqldb = nameščeno

Osnove odgovorov za Playbook

Ta del članka zajema osnovne koncepte odgovorov, če želite razumeti več o programu Ansible Playbook.

Gostitelji in uporabniki

Answer potrebe so ciljni stroji v infrastrukturi, na katerih se igra mora uvesti iz Ansible playbook-a. Gostitelji so v odgovorni seznam dodani prek svojih naslovov IP. Gostitelji so seznam ene ali več skupin ali vzorcev gostiteljev, ločenih z dvopičjem. Remote_user vsebuje ime uporabniškega računa.


– gostitelji: ProdServers
remote_user: geekflare

Spremenljivke

Spremenljivke vam omogočajo, da spremenite način igranja knjige. Uporabljajo se lahko skoraj povsod v zvezku in jih lahko podedujemo iz inventarja, izrecno nastavljenega med izvajanjem, odkritega na začetku izvajanja. Ime spremenljivke lahko določite s črkami, številkami in podčrtaji, vendar se mora začeti samo s črko.

Na primer, port_01 je veljavna spremenljivka, medtem ko je 01_post neveljavna spremenljivka. Tu je primer spremenljivk v Ansible Playbook:

vars:
http_port: 80
max_clients: 200

Zaloge

Če želite voditi predvajalnik, potrebujete seznam ciljev, na katerih želite, da se avtomatizacija zgodi. To počne popis. Sezname zalog je mogoče sestaviti in shraniti na več različnih načinov, vključno s statičnimi datotekami, tj. Ansible Hosts. Lahko pa se dinamično ustvari s skriptom inventarja, ki bo potegnil seznam gostiteljev za zunanji vir.

Spremenljivko lahko določite tudi kot del seznama inventarjev. Zaloge so na koncu seznam stvari, ki jih želite avtomatizirati.

[spletni strežniki]
192.168.20.1
192.168.20.2
192.168.20.4
[dbservers]
172.17.1.56
172.17.1.57

Naloge

Igra v nalogah, ki jih lahko izvajate. Naloga je odgovorna za izvajanje odzivnih modulov. Naenkrat se lahko izvaja samo ena naloga in naloge se izvršijo v zaporednem zaporedju. Njihove naloge so napisane v jeziku YAML, kar je precej podobno angleškemu jeziku.

Na primer: namestite ime paketa, Posodobi ime_programske datoteke itd. Spodaj je primer naloge v igralni knjižici Ansible, da namestite httpd:

naloge:
– ime: Namestite paket httpd
yum: ime = httpd stanje = najnovejše

Rokovalci

Rokovalci so posebna vrsta nalog.

Nalogo lahko sproži in se izvede enkrat na koncu igre. Uporablja se za pošiljanje obvestil, če je v konfiguracijski datoteki kakršna koli sprememba, na primer storitev obveščanja, da se zažene apache, ko se namesti. Za obdelavo klicev se uporablja sintaksa “obvesti”. Spodaj je primer vodnika za ponovni zagon apache:


– gostitelji: vsi
naloge:
– ime: zagotovite, da je apache v najnovejši različici
yum: ime = httpd stanje = najnovejše
obvestiti:
– znova zaženite apache
– ime: zagotovite, da se apache izvaja (in ga omogočite ob zagonu)
storitev: ime = httpd stanje = začetek omogočeno = da
obdelovalci:
– ime: znova zaženite apache
storitev: ime = httpd stanje = ponovno zagnano

Ustvarite in zaženite vaš prvi odgovoren Playbook

Naj povem, kako napisati knjigo. Vsaka knjiga se začne s tremi črticami (-) na vrhu.

Prva stvar, ki jo omenite v knjigi Ansible Playbook, so gostiteljski stroji, na katerih želite zagnati zvezek.

Nato lahko spremenljivke omenite tako, da zberete dejstva; potem lahko omenite različne naloge, ki jih želite opraviti. Zdaj si zapomnite, da se naloga opravi v istem vrstnem redu, kot ste jih napisali. Na primer, želite namestiti programsko opremo A in nato programsko opremo B, najprej preverite, ali je prva naloga, ki je napisana v knjižici, namestitev programske opreme A, naslednja naloga pa namestitev programske opreme B.

Nato imate na dnu ročnike. Obdelave so tudi opravila, vendar je razlika v tem, da za izvedbo obdelovalcev potrebujete neke vrste sprožilce na seznamu nalog, s katerimi zaženete upravljavce..

Dovolite mi, da vam pokažem, kako lahko ustvarite ansible playbook, da namestite in zaženete nginx na gostitelju in ga zaženete.

Ustvarite .yml datoteko, kamor boste postavili svoje YAML kode za ustvarjanje ansible playbook-a.

gedit nginx.yml

V to datoteko vstavite spodnjo kodo YAML in jo shranite.


– gostitelji: odjemalec
sudo: ja
vars:
– server_port: 8080

naloge:
– ime: namesti spletni strežnik nginx
apt: pkg = nginx state = nameščena update_cache = res
obvestiti:
– začeti nginx

obdelovalci:
– ime: start nginx
storitev: ime = nginx stanje = začetek

Zgornja datoteka YAML se začne z gostitelji, želim to zagon zagnati na odjemalcu (odjemalec). IP-naslov odjemalca je že shranjen v / etc / ansible / hosts datoteko.

Naslednja vrstica omogoča izvajanje nalog s privilegiji sudo.

Potem sem v tej knjižici za predvajanje opredelil server_port kot spremenljivko.

Potem je moja prva naloga v tej igralni knjižici za namestitev spletnega strežnika Nginx. V tej nalogi je tudi parameter notify, kar pomeni po tej nalogi upravljavec z izvajanjem.

Nazadnje sem napisal orodje za zagon nginx na odjemalcu.

Zdaj, ko vam je jasno, da so kode YAML v zvezku za igranje ansible zaženite ta seznam. Spodaj je sintaksa za vodenje odzivne glasbe:

ansible-playbook file_name.yml

Zdaj bom vodil ansible playbook, ki ga ustvarim za namestitev in zagon nginx.

[zaščitena e-pošta]: / home / geekflare # ansible-playbook nginx.yml

PREDSTAVITE [odjemalec] ************************************************ ********************

NALOG [Zbiranje dejstev] *********************************************** ************
v redu: [vozlišče1]

NALOGA [namesti spletni strežnik nginx] ********************************************* ****

spremenjeno: [vozlišče1]

RUNNING HANDLER [start nginx] ********************************************** ******
v redu: [vozlišče1]

PREDVAJAJTE RECEP ************************************************** *********************
vozlišče1: ok = 3 spremenjeno = 1 nedosegljivo = 0 neuspešno = 0 preskočeno = 0 rešeno = 0 prezrto = 0

Zaženite spodnji ukaz in preverite, ali je strežnik nginx pravilno nameščen in zagnan s strani ansible playbook-a.

[zaščitena e-pošta]: / domov / geekflare # ps waux | grep nginx
koren 3021 0,0 0,0 77676 1516? Ss 15:27 0:00 nginx: glavni postopek / usr / sbin / nginx -g daemon vklopljen; master_process vklopljen;

Zaključek

Šlo je za otroško knjigo Ansible. Upam, da vam je ta članek pomagal, da ste se naučili, kako lahko ustvarite in zaženete knjižico Ansible. Oglejte si to Seveda, če se želite naučiti napredne teme v programu Ansible, vključno z vlogami, Jinja2, poizvedbami, filtriranjem, moduli po meri.

Oznake:

  • Odgovorno

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map