Ansible Tutorial - Naučite se pisati Ansible Playbooks



V tem blogu za Ansible Tutorial boste izvedeli, kako pisati Ansible playbooks, adhoc ukaze in izvajati praktično uporabo Nginxa na vašem gostiteljskem računalniku.

Ansible Tutorial

Upam, da ste se naučili mojega prejšnjega spletnega dnevnika in najpogosteje uporabljene terminologije Ansible. V primeru, da je niste, si oglejte to, da boste lahko bolje razumeli to vadnico Ansible.Vedeti morate tudi, da je Ansible ključni del programa kot orodje za upravljanje konfiguracije, uvajanje in orkestracijo.

Naj vam predstavim pregled tega 'Ansible Tutorial':





Ansible Playbook Vadnica | Izobraževanje za DevOps | Edureka

Ansible Tutorial - Pisanje Ansible Playbooks

Knjige za igranje v jeziku Ansible so napisane v obliki YAML. Je razumljiv jezik za serializacijo podatkov. Običajno se uporablja za konfiguracijske datoteke. Uporablja se lahko tudi v številnih aplikacijah, kjer se shranjujejo podatki.



Za Ansible se skoraj vsaka datoteka YAML začne s seznamom. Vsak element na seznamu je seznam parov ključ / vrednost, ki se običajno imenuje 'hash' ali 'dictionary'. Torej, vedeti moramo, kako pisati sezname in slovarje v YAML.

Vsi člani seznama so vrstice, ki se začnejo na isti ravni zamika, začenši z '-' (pomišljaj in presledek). Možne so bolj zapletene podatkovne strukture, na primer seznami slovarjev ali mešani slovarji, katerih vrednosti so seznami ali kombinacija obeh.

npr. Za seznam oddelkov v edureki:



oddelki: - trženje - prodaja - rešitve - pisanje vsebine - podpora - izdelek

Zdaj pa naj vam dam primer slovarja:

-USA -celina: Severna Amerika -kapital: Washington DC -populacija: 319 milijonov

Gostitelji in uporabniki:

Za vsako igro v knjigi iger lahko izberete, katere stroje v vaši infrastrukturi želite ciljati in katerega oddaljenega uporabnika dokončati. Za vključitev gostiteljev v inventar Ansible bomo uporabili naslove IP gostiteljskih strojev.

Na splošno so gostitelji seznam ene ali več skupin ali vzorcev gostiteljev, ločenih z dvopičji. Oddaljeni uporabnik je samo ime uporabniškega računa.

Spremenljivke:

Ansible uporablja spremenljivke, ki so bile določene prej, da omogočijo večjo prilagodljivost v igralnih knjigah in vlogah. Uporabljajo se lahko za zanke skozi nabor danih vrednosti, dostop do različnih informacij, kot je ime gostitelja sistema, in zamenjavo nekaterih nizov v predlogah s posebnimi vrednostmi.

Ansible že določa bogat nabor spremenljivk, posameznih za vsak sistem. Kadarkoli se Ansible zažene v sistemu, se vsa dejstva in informacije o sistemu zberejo in nastavijo kot spremenljivke.

Ampak obstaja pravilo za poimenovanje spremenljivk. Imena spremenljivk naj bodo črke, številke in podčrtaji. Spremenljivke se morajo vedno začeti s črko. Npr. wamp_21, port5 je veljavna imena spremenljivk, medtem ko 01_port, _server so neveljavna.

Naloge:

Naloge vam omogočajo, da razdelite koščke konfiguracijske politike na manjše datoteke. Naloga vključuje vlečenje iz drugih datotek. Naloge v jeziku Ansible so skoraj v angleškem pomenu.

Npr .: Namestitev, posodobitev itd.

Vodniki:

Ravnatelji so podobni običajnim opravilom v Ansible playbook, vendar se izvajajo le, če Opravilo vsebuje direktivo o obveščanju in hkrati nakazuje, da je nekaj spremenilo. Če na primer spremenite konfiguracijsko datoteko, lahko opravilo, ki se sklicuje na konfiguracijsko datoteko, obvesti upravljavca za ponovni zagon storitve.

Naj vam dam primer knjige z igrami, ki bo zagnala strežniški program Apache httpd:

----gostitelji: spletni strežniki čigar: http_port: 80 max_clients: 200 oddaljeni uporabnik: koren naloge: - ime: poskrbite, da je apache najnovejša različica njam: ime = httpd stanje = najnovejše - ime: napišite konfiguracijsko datoteko apache predloga: src = / srv / httpd.j2 dest = / etc / httpd.conf obvestiti: - znova zaženite apache - ime: zagotovite, da se apache izvaja (in ga omogočite ob zagonu) storitev: ime = httpd stanje = omogočeno = da vodniki: - ime: znova zaženite apache storitev: ime = httpd stanje = ponovno zagnano

Upam, da vas bo primer povezal z vsemi opisi komponent playbook, ki sem jih omenil zgoraj. Če vam še vedno ni jasno, ne skrbite, vsi vaši dvomi bodo jasni v kasnejšem delu tega spletnega dnevnika.

Tu gre za knjige z igrami. Knjige iger, ki jih boste napisali vi. Toda Ansible vam ponuja tudi široko paleto modulov, ki jih lahko uporabite.

Ansible Tutorial - Moduli

Moduli v programu Ansible so idempotentni. S stališča storitve RESTful lahko stranke (ali klic storitve) postanejo idempotentne, da lahko stranke isti klic večkrat opravijo, medtem ko dajejo enak rezultat. Z drugimi besedami, oddajanje več enakih zahtev ima enak učinek kot dajanje ene same zahteve.

V programu Ansible obstajajo različne vrste modulov

  • Jedrni moduli
  • dodatki moduli

Jedrni moduli

To so moduli, ki jih vzdržuje osrednja skupina Ansible in jih bo vedno dostavljal sam. Prav tako bodo prejeli nekoliko višjo prednost za vse zahteve kot tiste, ki so v repoziturih 'statistov'.

Vir teh modulov gosti Ansible na GitHubu v jedru Ansible-modules.

Dodatni moduli

Ti moduli so trenutno dobavljeni z Ansible, vendar bodo v prihodnosti morda dobavljeni ločeno. Prav tako jih večinoma vzdržuje skupnost Ansible. Nejedrni moduli so še vedno v celoti uporabni, vendar lahko prejmejo nekoliko nižje stopnje odziva na težave in zahteve za vlečenje.

Priljubljeni moduli 'statisti' se lahko sčasoma povišajo v osnovne module.

Vir teh modulov gosti Ansible na GitHubu v Ansible-modules-extras.

Npr .: Eden od dodatnih modulov v modulih za daljinsko upravljanje je modul ipmi_power, ki je napajalnik za oddaljene stroje. Za zagon potrebuje python 2.6 ali novejši in pyghmi.

Ta modul lahko uporabite tako, da napišete adhoc ukaz, kakršnega sem napisal spodaj:

ipmi_power: name = 'test.domain.com' user = 'localhost' password = 'xyz' state = 'on'

Ansible Tutorial - Povratne vrednosti

Ansible moduli običajno vrnejo podatkovno strukturo, ki jo je mogoče registrirati v spremenljivko ali si jo ogledati neposredno pri izhodu programa Ansible. Vsak modul lahko po želji dokumentira svoje edinstvene povratne vrednosti.

Nekaj ​​primerov povratnih vrednosti je:

  • spremenjeno: vrne z logično vrednostjo, kadar koli opravilo spremeni.
  • failed: vrne logično vrednost, če naloga ni uspela
  • msg: vrne niz z generičnim sporočilom, posredovanim uporabniku.

Ansible Tutorial - AdHoc Ukazi

Adhoc ukazi so preprosti enovrstni ukaz za izvedbo nekega dejanja. Zagon modulov z ukazi Ansible so adhoc ukazi.

Npr .:

ansible gostitelj -m netscaler -a 'nsc_host = nsc.example.com user = apiuser geslo = apipass' 

Zgornji ukaz adhoc uporablja modul netscaler za onemogočanje strežnika. V Ansibleju je na voljo na stotine modulov, od koder se lahko sklicujete in pišete adhoc ukaze.

No, dovolj z vsemi teoretičnimi razlagami, naj vam pojasnim Ansible z nekaj rokami.

Ansible Tutorial - Hands On

Napisal bom knjigo iger za namestitev Nginxa na moje vozlišče / gostiteljski stroj.

Začnimo :)

Korak 1: Povežite se z gostitelji prek SSH. Za to morate ustvariti javni SSH ključ.

Uporabite spodnji ukaz:

ssh-keygen

Ustvari ključ SSH - Ansible Tutorial - Edureka

Kot lahko vidite na zgornjem posnetku, ukaz ssh-keygen ustvaril javni SSH ključ.

2. korak: Vaša naslednja naloga je kopiranje javnega SSH ključa na gostiteljih. Če želite to narediti, uporabite spodnji ukaz:

ssh-copy-id -i root @

Zgornji posnetek prikazuje ključ SSH, ki se kopira na gostitelje.

3. korak: V seznamu navedite naslove IP gostiteljev / vozlišč.

Uporabite naslednji ukaz:

vi / etc / ansible / hosts

Odprl se bo urejevalnik vi, v katerem lahko navedete naslove IP gostiteljev. To je zdaj vaš inventar.

4. korak: Pingirajmo, da zagotovimo, da je bila povezava vzpostavljena.

Zgornji posnetek potrjuje, da je bila vzpostavljena povezava med vašo krmilno napravo in gostiteljem.

5. korak: Napišimo zdaj knjigo za igranje, da namestimo Nginx na gostiteljski računalnik. Knjigo iger lahko napišete v urejevalnik vi. Za to preprosto ustvarite svojo igro z ukazom:

vi

Spodnji posnetek prikazuje mojo knjigo iger za namestitev Nginxa, napisanega v obliki YAML.

Naloge igralne knjige so v YAML opredeljene kot seznam slovarjev in se izvajajo od zgoraj navzdol. Če imamo več gostiteljev, se vsaka naloga preizkusi za vsakega gostitelja, preden se premaknemo na naslednjo. Vsaka naloga je definirana kot slovar, ki ima lahko več ključev, na primer “ime” ali “sudo”, ki označujeta ime naloge in ali zahteva privilegije sudo.

Spremenljivka server_port je nastavljen tako, da posluša na vratih TCP 8080 za dohodne zahteve.

Tu je prva naloga dobiti potreben paket za namestitev Nginxa in ga nato namestiti.Interno bo Ansible preveril, ali imenik obstaja, in ga ustvaril, če ne, sicer ne bo naredil ničesar.

Naslednja naloga je konfiguriranje Nginxa.V Nginxu konteksti vsebujejo podrobnosti o konfiguraciji.

Tu je predloga datoteka, ki jo lahko razmestite na gostiteljih. Datoteke predlog pa vključujejo tudi nekatere referenčne spremenljivke, ki so povlečene iz spremenljivk, opredeljenih kot del knjige Ansible ali dejstev, zbranih od gostiteljev. Dejstva, ki vsebujejo podrobnosti o konfiguraciji, se potegnejo iz izvornega imenika in kopirajo v ciljni imenik.

Obdelovalci tukaj opredelijo dejanje, ki naj se izvede šele po obvestilu o nalogah ali spremembah stanja. V tej knjigi iger smo določili, notify: restart Nginx handler, ki bo Nginx znova zagnal, ko bodo datoteke in predloge kopirane na gostitelje.

Zdaj shranite datoteko in zapustite.

kako nastaviti eclipse za javo -

6. korak: Zdaj pa zaženimo to igro z uporabo spodnjega ukaza:

ansible-playbook .yml

Na zgornjem posnetku zaslona vidimo, da je naša naloga namestitev Nginxa.

7. korak: Preverimo, ali je Nginx nameščen na mojem gostiteljskem računalniku. Uporabite spodnji ukaz:

ps waux | grep nginx

Na zgornjem posnetku zaslona lahko vidite, da se izvajajo različni identifikacijski številki procesov 3555 in 103316, kar zagotavlja, da se Nginx izvaja na vaših gostiteljskih strojih.

Čestitamo! Uspešno ste namestili Nginx na gostitelju s pomočjo Ansible playbooks. Upam, da ste uživali v branju tega bloga Ansible Tutorial. Prosim, obvestite me, če imate kakršna koli vprašanja v spodnjem oddelku za komentarje.

Če ste našli to Ansible Tutorial 'Ustrezne, preverite Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, ki se širijo po vsem svetu. Tečaj Edureka DevOps Certification Training pomaga učencem pridobiti znanje o različnih postopkih in orodjih DevOps, kot so Lutka, Jenkins, Ansible, Nagios in Git za avtomatizacijo več korakov v SDLC.