Ansible Tutorial - Naučite pisati Ansible Playbooks

Na ovom blogu za Ansible Tutorial naučit ćete kako pisati Ansible playbooks, adhoc naredbe i izvoditi praktične radnje na postavljanju Nginxa na vašem računalu domaćinu.

Ansible Tutorial

Nadam se da ste prošli moj prethodni blog da biste naučili i najčešće korištene terminologije Ansible. U slučaju da niste, provjerite kako biste mogli bolje razumjeti ovaj Ansible Tutorial.Također biste trebali znati da Ansible čini presudan dio kao alat za upravljanje konfiguracijom, implementaciju i orkestraciju.

prostor imena u c ++

Dopustite mi da vam dam pregled ovog 'Vodiča za odgovor':





Vodič za Ansible Playbook | DevOps trening | Edureka

Ansible Tutorial - Pisanje Ansible Playbooks

Knjige za reprodukciju na jeziku Ansible napisane su u YAML formatu. To je razumljiv jezik za serializaciju podataka. Obično se koristi za konfiguracijske datoteke. Također se može koristiti u mnogim aplikacijama u kojima se pohranjuju podaci.



Za Ansible, gotovo svaka YAML datoteka započinje popisom. Svaka stavka na popisu je popis parova ključ / vrijednost, koji se obično nazivaju 'hash' ili 'rječnik'. Dakle, moramo znati kako pisati popise i rječnike u YAML-u.

Svi su članovi popisa redovi koji počinju na istoj razini uvlačenja koja počinju s '-' (crtica i razmak). Moguće su složenije strukture podataka, poput popisa rječnika ili mješovitih rječnika čije su vrijednosti popisi ili kombinacija oba.

npr. Za popis odjela u edureki:



odjeli: - marketing - prodaja - rješenja - pisanje sadržaja - podrška - proizvod

Sada ću vam dati primjer rječnika:

-USA -kontinent: Sjeverna Amerika -kapital: Washington DC -stanovništvo: 319 milijuna

Domaćini i korisnici:

Za svaku predstavu u priručniku možete odabrati koje ćete strojeve u vašoj infrastrukturi ciljati, a kojeg udaljenog korisnika dovršiti zadatke. Da bismo uključili hostove u inventivni popis Ansible, koristit ćemo IP adrese računala domaćina.

Općenito su domaćini na popisu jedne ili više grupa ili obrazaca domaćina, odvojeni dvotočkom. Udaljeni korisnik samo je ime korisničkog računa.

Varijable:

Ansible koristi varijable koje su prethodno definirane kako bi omogućile veću fleksibilnost u knjigama i ulogama. Mogu se koristiti za petlju kroz niz zadanih vrijednosti, pristup raznim informacijama poput naziva hosta sustava i zamjenu određenih nizova u predlošcima određenim vrijednostima.

Ansible već definira bogat niz varijabli, pojedinačnih za svaki sustav. Kad god se Ansible pokrene na sustavu, sve se činjenice i informacije o sustavu prikupljaju i postavljaju kao varijable.

Ali postoji Pravilo za imenovanje varijabli. Imena varijabli trebala bi biti slova, brojevi i donje crte. Varijable uvijek trebaju počinjati slovom. Npr. wamp_21, port5 je valjana imena varijabli, dok 01_port, _server nisu valjani.

Zadaci:

Zadaci vam omogućuju razbijanje dijelova politike konfiguracije na manje datoteke. Zadatak uključuje povlačenje iz drugih datoteka. Zadaci u Ansibleu podudaraju se s engleskim značenjem.

Npr .: Instaliranje, ažuriranje itd.

Voditelji:

Rukovatelji su poput redovnih zadataka u Ansible playbook-u, ali izvode se samo ako Zadatak sadrži smjernicu notify i također ukazuje da je nešto promijenio. Na primjer, ako se promijeni konfiguracijska datoteka, tada zadatak koji upućuje na konfiguracijsku datoteku može obavijestiti voditelja ponovnog pokretanja usluge.

Dopustite mi da vam dam primjer playbook-a koji će pokrenuti poslužiteljski program Apache httpd:

----domaćini: web poslužitelji čija: http_port: 80 max_clients: 200 daljinski_korisnik: korijen zadaci: - Ime: osigurajte da je apache najnovija verzija njam: ime = httpd stanje = najnovije - Ime: napišite konfiguracijsku datoteku apache predložak: src = / srv / httpd.j2 dest = / etc / httpd.conf obavijestiti: - ponovno pokrenite apache - Ime: osigurati da apache radi (i omogućiti ga prilikom pokretanja) servis: ime = httpd stanje = pokrenuto omogućeno = da rukovatelji: - Ime: ponovno pokrenite apache servis: ime = httpd stanje = ponovno pokrenuto

Nadam se da će vas primjer povezati sa svim opisima komponenata playbook-a koje sam gore spomenuo. Ako vam i dalje nije jasno, ne brinite da će sve vaše sumnje biti jasne u kasnijem dijelu ovog bloga.

Sve je ovo zbog knjiga s igrama. Knjige igara koje ćete napisati vi. Ali Ansible vam nudi i širok raspon modula koje možete koristiti.

Ansible Tutorial - Moduli

Moduli u Ansibleu su idempotentni. S gledišta usluge RESTful, da bi operacija (ili poziv usluge) bila idempotentna, klijenti mogu taj isti poziv uputiti više puta dok daju isti rezultat. Drugim riječima, podnošenje više identičnih zahtjeva ima isti učinak kao i podnošenje jednog zahtjeva.

U Ansibleu postoje različite vrste modula

  • Jezgri modula
  • dodaci moduli

Osnovni moduli

To su moduli koje održava glavni tim Ansible i koji će se uvijek isporučivati ​​sa samim Ansibleom. Oni će također dobiti neznatno veći prioritet za sve zahtjeve od onih u repo stavkama 'dodataka'.

Izvor ovih modula hostira Ansible na GitHubu u jezgri Ansible-modules.

Dodaci moduli

Ovi se moduli trenutno isporučuju s Ansible-om, ali u budućnosti će se možda isporučivati ​​zasebno. Također ih uglavnom održava zajednica Ansible. Moduli koji nisu jezgre i dalje su u potpunosti upotrebljivi, ali mogu primiti nešto niže stope odgovora na probleme i zahtjeve za povlačenjem.

Popularni 'dodaci' moduli mogu se s vremenom promovirati u osnovne module.

Izvor ovih modula hostira Ansible na GitHub-u u Ansible-modules-extras.

Npr .: Jedan od dodatnih modula u modulima za daljinsko upravljanje je modul ipmi_power, koji je upravljač napajanjem za udaljene strojeve. Za pokretanje je potreban python 2.6 ili noviji i pyghmi.

Ovaj modul možete koristiti pisanjem adhoc naredbe poput one koju sam napisao u nastavku:

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

Ansible Tutorial - Povratne vrijednosti

Ansible moduli obično vraćaju strukturu podataka koja se može registrirati u varijablu ili vidjeti izravno kada je program Ansible izlazi. Svaki modul može po želji dokumentirati svoje jedinstvene povratne vrijednosti.

Neki primjeri povratnih vrijednosti su:

  • promijenjeno: vraća se s logičkom vrijednošću kad god zadatak izvrši bilo kakvu promjenu.
  • nije uspjelo: vraća logičku vrijednost ako zadatak nije uspio
  • msg: vraća niz s generičkom porukom koja se prenosi korisniku.

Ansible Tutorial - AdHoc naredbe

Adhoc naredbe su jednostavne naredbe u jednom retku za izvođenje neke radnje. Pokretanje modula s naredbama Ansible adhoc su naredbe.

Npr .:

ansible host -m netscaler -a 'nsc_host = nsc.example.com user = apiuser password = apipass' 

Gornja naredba adhoc koristi modul netscaler za onemogućavanje poslužitelja. U Ansibleu su dostupne stotine modula odakle se možete pozivati ​​i pisati adhoc naredbe.

Pa, dosta sa svim teoretskim objašnjenjima, dopustite mi da vam objasnim Ansible s nekoliko ruku.

Ansible Tutorial - Ruke dalje

Napisat ću knjigu priručnika za instalaciju Nginxa na moj čvor / host stroj.

Započnimo :)

Korak 1: Povežite se s domaćinima pomoću SSH-a. Za to trebate generirati javni SSH ključ.

Upotrijebite naredbu u nastavku:

ssh-keygen

Generiraj SSH ključ - Ansible Tutorial - Edureka

Kao što možete vidjeti na gornjoj snimci, naredba ssh-keygen generirao javni SSH ključ.

Korak 2: Sljedeći je zadatak kopirati javni SSH ključ na hostovima. Da biste to učinili, upotrijebite naredbu u nastavku:

ssh-copy-id -i root @

spojiti sortiranje c ++ primjer

Gornja snimka prikazuje SSH ključ koji se kopira na hostove.

Korak 3: Navedite IP adrese vaših hostova / čvorova u vašem inventaru.

Upotrijebite sljedeću naredbu:

vi / etc / ansible / hosts

Ovo će otvoriti vi editor, u kojem možete navesti IP adrese domaćina. Ovo je sada vaš inventar.

Korak 4: Pingamo kako bismo osigurali da je veza uspostavljena.

Gornja snimka potvrđuje da je uspostavljena veza između vašeg upravljačkog stroja i hosta.

Korak 5: Napišimo sada knjigu za igranje kako bismo instalirali Nginx na računalo s računalom. Svoju knjigu pjesama možete napisati u vi editoru. Za to jednostavno stvorite svoju knjigu pjesama koristeći naredbu:

vi

Snimka u nastavku prikazuje moju knjigu priručnika za instaliranje Nginxa napisanog u YAML formatu.

Zadaci knjige za igru ​​definirani su u YAML-u kao popis rječnika i izvršavaju se od vrha do dna. Ako imamo nekoliko hostova, tada se svaki zadatak iskušava za svakog domaćina prije nego što prijeđe na sljedeći. Svaki zadatak definiran je kao rječnik koji može imati nekoliko ključeva, poput 'name' ili 'sudo' koji označavaju naziv zadatka i zahtijevaju li sudo privilegije.

Varijabla poslužiteljski_port je postavljen da sluša na TCP priključku 8080 za dolazne zahtjeve.

Ovdje je prvi zadatak nabaviti potreban paket za instalaciju Nginxa, a zatim ga instalirati.Interno će Ansible provjeriti postoji li direktorij i stvoriti ga ako ne, inače neće učiniti ništa.

Sljedeći je zadatak konfigurirati Nginx.U Nginxu konteksti sadrže detalje o konfiguraciji.

Ovdje je predložak datoteka koju možete rasporediti na hostovima. Međutim, datoteke predložaka uključuju i neke referentne varijable koje su izvučene iz varijabli definiranih kao dio knjige Ansible ili činjenica prikupljenih od domaćina. Činjenice koje sadrže detalje o konfiguraciji izvlače se iz izvornog direktorija i kopiraju u odredišni direktorij.

razlika između hash tablice i hash mape

Ovdje rukovatelji definiraju radnju koja će se izvršiti samo nakon obavijesti o zadacima ili promjenama stanja. U ovoj priručniku definirali smo, notify: restart Nginx handler koji će ponovno pokrenuti Nginx nakon što se datoteke i predlošci kopiraju na hostove.

Sada spremite datoteku i izađite.

Korak 6: Ajmo sada pokrenuti ovu knjigu priručnika, koristeći naredbu u nastavku:

ansible-playbook .yml

Na gornjoj snimci zaslona možemo vidjeti da se naš zadatak izvršava da se instalira Nginx.

Korak 7: Provjerimo je li Nginx instaliran na mom host računalu. Upotrijebite naredbu u nastavku:

ps waux | grep nginx

Na gornjoj snimci zaslona možete vidjeti da se izvode različiti identifikacijski brojevi procesa 3555 i 103316, što osigurava da se Nginx izvodi na vašim računalima domaćinima.

Čestitamo! Uspješno ste implementirali Nginx na vašem hostu pomoću Ansible playbooks. Nadam se da ste uživali čitajući ovaj blog Ansible Tutorial. Obavijestite me ako imate pitanja u odjeljku za komentare u nastavku.

Ako ste pronašli ovo Ansible Tutorial ”Relevantno, provjerite Edureka, pouzdane tvrtke za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta. Edureka DevOps certifikacijski tečaj pomaže učenicima da steknu stručnost u različitim DevOps procesima i alatima kao što su Puppet, Jenkins, Ansible, Nagios i Git za automatizaciju više koraka u SDLC-u.