Tutorial Ansible - Învățați să scrieți cărți de joc Ansible



În acest blog Ansible Tutorial veți învăța cum să scrieți cărți de redare Ansible, comenzi adhoc și cum să efectuați hands-on pentru a implementa Nginx pe computerul gazdă.

Tutorial Ansible

Sper că ai trecut prin blogul meu anterior pentru a învăța și cele mai utilizate terminologii ale Ansible. În cazul în care nu ați făcut-o, vă rugăm să o verificați pentru a putea înțelege mai bine acest tutorial Ansible.De asemenea, ar trebui să știți că Ansible reprezintă o parte crucială a ca instrument pentru gestionarea configurației, implementarea și orchestrarea.

Permiteți-mi să vă ofer o prezentare generală a acestui „Tutorial Ansible”:





Tutorial Ansible Playbook | Instruire DevOps | Edureka

Tutorial Ansible - Scrierea manualelor Ansible

Playbook-urile în Ansible sunt scrise în format YAML. Este un limbaj de serializare a datelor care poate fi citit de om. Este utilizat în mod obișnuit pentru fișierele de configurare. Poate fi folosit și în multe aplicații în care sunt stocate date.



Pentru Ansible, aproape fiecare fișier YAML începe cu o listă. Fiecare element din listă este o listă de perechi cheie / valoare, denumită în mod obișnuit „hash” sau „dicționar”. Deci, trebuie să știm cum să scriem liste și dicționare în YAML.

Toți membrii unei liste sunt linii care încep la același nivel de indentare începând cu un „-” (liniuță și spațiu). Sunt posibile structuri de date mai complicate, cum ar fi liste de dicționare sau dicționare mixte ale căror valori sunt liste sau o combinație a ambelor.

de exemplu. Pentru o listă a departamentelor din edureka:



departamente: - marketing - vânzări - soluții - redactarea conținutului - suport - produs

Acum permiteți-mi să vă dau un exemplu de dicționar:

-USA -continent: America de Nord -capitală: Washington DC -populație: 319 milioane

Gazde și utilizatori:

Pentru fiecare piesă dintr-un playbook, trebuie să alegeți ce mașini din infrastructura dvs. să vizați și ce utilizator la distanță să finalizeze sarcinile. Pentru a include gazdele în inventarul Ansible, vom folosi adresele IP ale mașinilor gazdă.

În general, gazdele sunt o listă cu unul sau mai multe grupuri sau tipare de gazde, separate prin două puncte. Utilizatorul la distanță este doar numele contului de utilizator.

Variabile:

Ansible folosește variabile definite anterior pentru a permite mai multă flexibilitate în cărțile de joc și roluri. Acestea pot fi folosite pentru a parcurge un set de valori date, pentru a accesa diverse informații, cum ar fi numele gazdei unui sistem și pentru a înlocui anumite șiruri din șabloane cu valori specifice.

Ansible definește deja un set bogat de variabile, individuale pentru fiecare sistem. Ori de câte ori Ansible va rula pe un sistem, toate faptele și informațiile despre sistem sunt colectate și setate ca variabile.

Dar există un regulă pentru numirea variabilelor. Numele variabilelor trebuie să fie litere, cifre și caractere de subliniere. Variabilele ar trebui să înceapă întotdeauna cu o literă. De exemplu. wamp_21, port5 este un nume de variabilă valid, în timp ce 01_port, _server sunt nevalide.

Sarcini:

Sarcinile vă permit să împărțiți biți de politică de configurare în fișiere mai mici. Activitatea include extragerea din alte fișiere. Sarcinile din Ansible se potrivesc destul de mult cu semnificația engleză a acestuia.

De exemplu: instalați, actualizați etc.

Manipulatori:

Handlerele sunt la fel ca sarcinile obișnuite dintr-o carte de joc Ansible, dar sunt rulate numai dacă sarcina conține o directivă de notificare și indică, de asemenea, că a schimbat ceva. De exemplu, dacă un fișier de configurare este modificat, atunci sarcina care face referire la fișierul de configurare poate notifica un handler de repornire a serviciului.

Permiteți-mi să vă dau un exemplu de playbook care va porni programul server Apache httpd:

----gazde: servere web a caror: http_port: 80 max_clients: 200 utilizator_distanță: rădăcină sarcini: - Nume: asigurați-vă că apache este la cea mai recentă versiune da: nume = httpd state = latest - Nume: scrieți fișierul de configurare apache șablon: src = / srv / httpd.j2 dest = / etc / httpd.conf notifica: - reporniți apache - Nume: asigurați-vă că apache rulează (și activați-l la pornire) serviciu: nume = stare httpd = început activat = da manipulatori: - Nume: reporniți apache serviciu: nume = httpd state = repornit

Sper că exemplul vă va lega de toate descrierile componentelor din playbook pe care le-am menționat mai sus. Dacă nu vă este încă clar, nu vă faceți griji, toate îndoielile dvs. vor fi clare în partea ulterioară a acestui blog.

Aici este vorba despre playbooks. Cărțile de joc care vor fi scrise de dvs. Dar Ansible vă oferă și o gamă largă de module, pe care le puteți utiliza.

Ansible Tutorial - Module

Modulele din Ansible sunt idempotente. Din punct de vedere al serviciului RESTful, pentru ca o operațiune (sau un apel de serviciu) să fie idempotentă, clienții pot efectua același apel în mod repetat în timp ce produc același rezultat. Cu alte cuvinte, efectuarea mai multor cereri identice are același efect ca efectuarea unei singure cereri.

Există diferite tipuri de module în Ansible

  • Module de bază
  • module suplimentare

Module de bază

Acestea sunt module pe care echipa de bază Ansible le întreține și le va livra întotdeauna împreună cu Ansible. De asemenea, aceștia vor primi o prioritate ușor mai mare pentru toate cererile decât cele din repozitele „extras”.

Sursa acestor module este găzduită de Ansible pe GitHub în Ansible-modules-core.

exemplu de clasă java

Module Extras

Aceste module sunt livrate în prezent cu Ansible, dar ar putea fi livrate separat în viitor. De asemenea, acestea sunt în mare parte întreținute de comunitatea Ansible. Modulele non-core sunt încă pe deplin utilizabile, dar pot primi rate de răspuns ușor mai mici pentru probleme și solicitări pull.

Modulele „extras” populare pot fi promovate în module de bază în timp.

Sursa pentru aceste module este găzduită de Ansible pe GitHub în Ansible-modules-extras.

De exemplu: Unul dintre modulele suplimentare din modulele de gestionare la distanță este modulul ipmi_power, care este un manger de alimentare pentru mașinile la distanță. Necesită python 2.6 sau o versiune ulterioară și pyghmi pentru a rula.

Puteți utiliza acest modul scriind o comandă adhoc ca cea pe care am scris-o mai jos:

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

Tutorial Ansible - Valori returnate

Modulele Ansible returnează în mod normal o structură de date care poate fi înregistrată într-o variabilă sau vizualizată direct la ieșirea de către programul Ansible. Fiecare modul își poate documenta opțional propriile valori de returnare unice.

Câteva exemple de valori returnate sunt:

  • modificat: revine cu o valoare booleană ori de câte ori sarcina efectuează orice modificare.
  • eșuat: returnează o valoare booleană, dacă sarcina eșuează
  • msg: returnează un șir cu un mesaj generic transmis utilizatorului.

Tutorial Ansible - Comenzi AdHoc

Comenzile adhoc sunt comenzi simple dintr-o singură linie pentru a efectua unele acțiuni. Rularea modulelor cu comenzi Ansible sunt comenzi adhoc.

De exemplu:

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

Comanda adhoc de mai sus folosește modulul netscaler pentru a dezactiva serverul. Există sute de module disponibile în Ansible, de unde puteți consulta și scrie comenzi adhoc.

Ei bine, destul cu toate explicațiile teoretice, permiteți-mi să vă explic Ansible cu câteva mâini pe mâna.

Tutorial Ansible - Hands On

Voi scrie un playbook pentru a instala Nginx pe nodul / mașina gazdă.

Sa incepem :)

Pasul 1: Conectați-vă la gazdele dvs. folosind SSH. Pentru aceasta, trebuie să generați o cheie SSH publică.

Folosiți comanda de mai jos:

ssh-keygen

Generați cheia Ssh - Tutorial Ansible - Edureka

După cum puteți vedea în instantaneul de mai sus, comanda ssh-keygen a generat o cheie SSH publică.

cum să faci un clasă singleton

Pasul 2: Următoarea dvs. sarcină este să copiați cheia SSH publică pe gazde. Pentru a face acest lucru, utilizați comanda de mai jos:

ssh-copy-id -i root @

Instantaneul de mai sus arată cheia SSH care este copiată pe gazde.

Pasul 3: Enumerați adresele IP ale gazdelor / nodurilor din inventar.

Utilizați următoarea comandă:

vi / etc / ansible / hosts

Aceasta va deschide un editor vi unde puteți lista adresele IP ale gazdelor dvs. Acesta este acum inventarul dvs.

Pasul 4: Să facem ping pentru a ne asigura că s-a stabilit o conexiune.

Instantaneul de mai sus confirmă faptul că s-a făcut conexiunea între mașina de control și gazdă.

Pasul 5: Să scriem acum un playbook pentru a instala Nginx pe computerul gazdă. Vă puteți scrie manualul în editorul vi. Pentru aceasta, pur și simplu creați-vă playbook-ul, folosind comanda:

vi

Instantaneul de mai jos arată cartea mea de joc pentru a instala Nginx scris în format YAML.

Sarcinile unui playbook sunt definite în YAML ca o listă de dicționare și executate de sus în jos. Dacă avem mai multe gazde, atunci fiecare sarcină este încercată pentru fiecare gazdă înainte de a trece la următoarea. Fiecare sarcină este definită ca un dicționar care poate avea mai multe chei, cum ar fi „nume” sau „sudo” care semnifică numele sarcinii și dacă necesită privilegii sudo.

O variabilă server_port este setat care ascultă pe portul TCP 8080 pentru cereri primite.

Aici, prima sarcină este să obțineți pachetul necesar pentru instalarea Nginx și apoi să îl instalați.Pe plan intern, Ansible va verifica dacă directorul există și îl va crea dacă nu există, altfel nu va face nimic.

cum se generează un șir aleatoriu în java

Următoarea sarcină este de a configura Nginx.În Nginx, contextele conțin detalii de configurare.

Aici, șablonul este un fișier pe care îl puteți implementa pe gazde. Cu toate acestea, fișierele șablon includ, de asemenea, câteva variabile de referință care sunt extrase din variabile definite ca parte a unei cărți de joc Ansible sau fapte adunate de la gazde. Faptele care conțin detaliile de configurare sunt extrase dintr-un director sursă și sunt copiate într-un director de destinație.

Handlers definesc acțiunea care trebuie efectuată numai la notificarea sarcinilor sau a modificărilor de stare. În acest manual, am definit, notificat: reporniți handlerul Nginx, care va reporni Nginx odată ce fișierele și șabloanele sunt copiate pe gazde.

Acum, salvați fișierul și ieșiți.

Pasul 6: Acum, să rulăm acest playbook, folosind comanda de mai jos:

ansible-playbook .yml

Putem vedea în captura de ecran de mai sus că sarcina noastră este executarea instalării Nginx.

Pasul 7: Să verificăm dacă Nginx este instalat pe computerul meu gazdă. Folosiți comanda de mai jos:

ps waux | grep nginx

Puteți vedea în captura de ecran de mai sus că se execută diferite ID-uri de proces 3555 și 103316, ceea ce asigură faptul că Nginx rulează pe mașinile dvs. gazdă.

Felicitări! Ați implementat cu succes Nginx pe gazda dvs. utilizând cărți de joc Ansible. Sper că v-a plăcut să citiți acest blog Ansible Tutorial. Vă rugăm să-mi spuneți dacă aveți întrebări în secțiunea de comentarii de mai jos.

Dacă ați găsit acest „ Tutorial Ansible ”Relevant, verificați de Edureka, o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul. Cursul Edureka DevOps Certification Training ajută cursanții să câștige expertiză în diferite procese și instrumente DevOps, cum ar fi Puppet, Jenkins, Ansible, Nagios și Git pentru automatizarea mai multor pași în SDLC.