Ansible Tutorial - iemācieties rakstīt Ansible Playbooks



Šajā emuārā Ansible Tutorial jūs uzzināsiet, kā rakstīt Ansible playbooks, adhoc komandas un veikt praktiskas darbības, lai izvietotu Nginx savā resursdatorā.

Ansible apmācība

Es ceru, ka jūs mācījāties manā iepriekšējā emuārā un visbiežāk izmantotās Ansible terminoloģijas. Ja vēl neesat to izdarījis, lūdzu, pārbaudiet to, lai labāk izprastu šo Ansible Tutorial.Jums vajadzētu arī zināt, ka Ansible veido būtisku daļu kā konfigurācijas pārvaldības, izvietošanas un orķestrēšanas rīks.

Ļaujiet man sniegt jums pārskatu par šo “Ansible Tutorial”:





Ansible Playbook apmācība DevOps apmācība Edureka

Ansible Tutorial - rakstīšana Ansible Playbooks

Spēles grāmatas Ansible ir rakstītas YAML formātā. Tā ir cilvēkiem lasāma datu sērijas valoda. To parasti izmanto konfigurācijas failiem. To var izmantot arī daudzās lietojumprogrammās, kur tiek glabāti dati.



Programmā Ansible gandrīz katrs YAML fails sākas ar sarakstu. Katrs saraksta vienums ir atslēgu / vērtību pāru saraksts, ko parasti sauc par “jaucējkrānu” vai “vārdnīcu”. Tātad, mums jāzina, kā rakstīt sarakstus un vārdnīcas YAML.

Visi saraksta dalībnieki ir rindas, kas sākas vienā ievilkuma līmenī un sākas ar “-” (domuzīme un atstarpe). Iespējamas sarežģītākas datu struktūras, piemēram, vārdnīcu vai jauktu vārdnīcu saraksti, kuru vērtības ir saraksti vai abu kombinācija.

piem. Nodaļu saraksts Edurekā:



nodaļas: - mārketings - pārdošana - risinājumi - satura rakstīšana - atbalsts - produkts

Tagad ļaujiet man jums pateikt vārdnīcas piemēru:

-USA-kontinentālā daļa: Ziemeļamerika-galvaspilsēta: Vašingtona DC - iedzīvotāju skaits: 319 miljoni

Saimnieki un lietotāji:

Katrai lugas grāmatā jums jāizvēlas, kuras mašīnas jūsu infrastruktūrā atlasīt un kurš attālais lietotājs izpildīt uzdevumus. Lai iekļautu resursdatorus Ansible inventārā, mēs izmantosim resursdatoru mašīnu IP adreses.

Parasti resursdatori ir viena vai vairāku grupu vai resursdatora modeļu saraksts, atdalīti ar kolu. Attālais lietotājs ir tikai lietotāja konta nosaukums.

Mainīgie:

Ansible izmanto iepriekš definētus mainīgos, lai nodrošinātu lielāku elastību atskaņošanas grāmatās un lomās. Tos var izmantot, lai apietu norādīto vērtību kopu, piekļūtu daudzveidīgai informācijai, piemēram, sistēmas resursdatora nosaukumam, un aizstātu noteiktas virknes veidnēs ar īpašām vērtībām.

Ansible jau nosaka bagātīgu mainīgo kopu, katrai sistēmai individuāli. Ikreiz, kad sistēmā darbosies Ansible, visi fakti un informācija par sistēmu tiek apkopoti un iestatīti kā mainīgie.

Bet ir a likums mainīgo lielumu nosaukšanai. Mainīgo nosaukumiem jābūt burtiem, cipariem un pasvītrām. Mainīgajiem vienmēr jāsākas ar burtu. Piem., wamp_21, port5 ir derīgi mainīgo nosaukumi, savukārt 01_port, _server nav derīgi.

Uzdevumi:

Uzdevumi ļauj sadalīt konfigurācijas politikas bitus mazākos failos. Uzdevums ietver izvilkšanu no citiem failiem. Uzdevumi programmā Ansible gandrīz atbilst angļu valodas nozīmei.

Piem., Instalēšana, atjaunināšana utt.

Apstrādātāji:

Apstrādātāji ir gluži kā regulāri uzdevumi Ansible playbook, bet tiek izpildīti tikai tad, ja uzdevumā ir paziņošanas direktīva un norādīts, ka tas kaut ko mainīja. Piemēram, ja tiek mainīts konfigurācijas fails, uzdevums, kas atsaucas uz konfigurācijas failu, var paziņot pakalpojuma restartēšanas apstrādātājam.

Ļaujiet man sniegt jums piemēru par grāmatu, ar kuru tiks palaista Apache httpd servera programma:

----saimniekiem: tīmekļa serveri kuru: http_port: 80 max_clients: 200 remote_user: sakne uzdevumi: - nosaukums: pārliecinieties, vai apache ir jaunākā versija yum: nosaukums = httpd stāvoklis = jaunākais - nosaukums: uzrakstiet apache konfigurācijas failu veidne: src = / srv / httpd.j2 dest = / utt / httpd.conf paziņot: - restartējiet apache - nosaukums: pārliecinieties, vai apache darbojas (un iespējojiet to sāknēšanas laikā) apkalpošana: nosaukums = httpd stāvoklis = sākts iespējots = jā apstrādātāji: - nosaukums: restartējiet apache apkalpošana: nosaukums = httpd stāvoklis = restartēts

Es ceru, ka piemērs attieksies uz visiem manis iepriekš pieminētajiem playbook komponentu aprakstiem. Ja jums tas joprojām nav skaidrs, neuztraucieties, ka visas jūsu šaubas būs skaidras šī emuāra vēlāk.

Tas viss ir par spēļu grāmatām. Spēļu grāmatas, kuras jūs rakstīsit. Bet Ansible nodrošina arī plašu moduļu klāstu, kurus varat izmantot.

Ansible Tutorial - moduļi

Programmas Ansible moduļi ir idempotenti. No RESTful pakalpojuma viedokļa, lai operācija (vai servisa zvans) būtu idempotenta, klienti var atkārtoti veikt to pašu zvanu, vienlaikus nodrošinot to pašu rezultātu. Citiem vārdiem sakot, vairāku identisku pieprasījumu veikšanai ir tāds pats efekts kā vienam pieprasījumam.

Programmā Ansible ir dažādi moduļu veidi

  • Galvenie moduļi
  • papildus moduļi

Galvenie moduļi

Tie ir moduļi, kurus galvenā Ansible komanda uztur un vienmēr piegādās kopā ar pašu Ansible. Viņi arī saņems nedaudz augstāku prioritāti visiem pieprasījumiem nekā tie, kas iekļauti “ekstru” repos.

Šo moduļu avotu GitHub mitina Ansible kodols Ansible-moduļi.

Papildu moduļi

Šie moduļi pašlaik tiek piegādāti kopā ar Ansible, bet nākotnē tos var piegādāt atsevišķi. Arī tos pārsvarā uztur Ansible kopiena. Bez pamata moduļi joprojām ir pilnībā izmantojami, taču, iespējams, saņemat nedaudz zemāku atbildes līmeni par jautājumiem un pieprasījumiem.

Laika gaitā populāros “ekstras” moduļus var reklamēt par galvenajiem moduļiem.

Šo moduļu avotu vietne Ansible vietnē GitHub satur Ansible-moduļi-ekstras.

Piem., Viens no attālinātās vadības moduļu papildu moduļiem ir ipmi_power modulis, kas ir attālo mašīnu enerģijas pārvaldītājs. Tam nepieciešams python 2.6 vai jaunāks un pyghmi, lai palaistu.

Jūs varat izmantot šo moduli, rakstot adhoc komandu, piemēram, to, kuru esmu uzrakstījis zemāk:

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

Ansible Tutorial - atgriešanās vērtības

Iespējamie moduļi parasti atgriež datu struktūru, kuru var reģistrēt mainīgajā vai redzēt tieši, kad to izdod programma Ansible. Katrs modulis pēc izvēles var dokumentēt savas unikālās atgriešanās vērtības.

Daži atgriešanās vērtību piemēri ir:

  • mainīts: atgriežas ar būla vērtību, kad uzdevums veic kādas izmaiņas.
  • neizdevās: atgriež Būla vērtību, ja uzdevums neizdodas
  • msg: tā atgriež virkni ar vispārēju ziņojumu, kas pārsūtīts lietotājam.

Ansible Tutorial - AdHoc komandas

Adhoc komandas ir vienkāršas vienas rindas komandas, lai veiktu kādu darbību. Moduļu palaišana ar komandām Ansible ir adhoc komandas.

Piemēram:

ansible host -m netscaler -a 'nsc_host = nsc.example.com lietotājs = apiuser parole = apipass' 

Iepriekš minētā adhoc komanda servera atspējošanai izmanto netscaler moduli. Programmā Ansible ir pieejami simtiem moduļu, no kuriem varat atsaukties un rakstīt adhoc komandas.

Nu, pietiek ar visiem teorētiskajiem skaidrojumiem, ļaujiet man paskaidrot jūs Ansible ar dažām rokām.

Ansible Tutorial - rokas uz rokas

Es rakstu playbook, lai instalētu Nginx manā mezglā / resursdatorā.

Sāksim :)

1. darbība: Izveidojiet savienojumu ar saviem saimniekiem, izmantojot SSH. Lai to izdarītu, jums ir jāveido publiska SSH atslēga.

Izmantojiet zemāk esošo komandu:

ssh-keygen

Ģenerēt Ssh Key - Ansible Tutorial - Edureka

Kā redzat augšējā momentuzņēmumā, komanda ssh-keygen ģenerēja publisku SSH atslēgu.

2. darbība: Jūsu nākamais uzdevums ir kopēt publisko SSH atslēgu savos resursdatoros. Lai to izdarītu, izmantojiet zemāk esošo komandu:

ssh-copy-id -i root @

Iepriekš redzamajā momentuzņēmumā redzams, ka SSH atslēga tiek kopēta resursdatoros.

3. solis: Sarakstā uzskaitiet savu saimniekdatoru / mezglu IP adreses.

Izmantojiet šādu komandu:

vi / etc / ansible / hosts

Tas atvērs vi redaktoru, kurā jūs varat uzskaitīt savu saimnieku IP adreses. Tagad tas ir jūsu inventārs.

4. solis: Pārbaudīsim, vai ir izveidots savienojums.

Iepriekšējais momentuzņēmums apstiprina, ka ir izveidots savienojums starp jūsu vadības mašīnu un resursdatoru.

5. darbība: Tagad uzrakstīsim spēļu grāmatu, lai Nginx instalētu resursdatora mašīnā. Spēļu grāmatu var rakstīt vi redaktorā. Lai to izdarītu, vienkārši izveidojiet savu spēļu grāmatu, izmantojot komandu:

vi

Zemāk esošajā momentuzņēmumā parādīta mana spēļu grāmata, lai instalētu Nginx, kas rakstīts YAML formātā.

Spēļu grāmatas uzdevumi YAML ir definēti kā vārdnīcu saraksts un tiek izpildīti no augšas uz leju. Ja mums ir vairāki resursdatori, tad katrs uzdevums tiek izmēģināts katram resursdatoram, pirms pāriet uz nākamo. Katrs uzdevums ir definēts kā vārdnīca, kurai var būt vairāki taustiņi, piemēram, “nosaukums” vai “sudo”, kas apzīmē uzdevuma nosaukumu un to, vai tam nepieciešamas sudo privilēģijas.

Mainīgais server_port ir iestatīts, kas klausās TCP portu 8080 ienākošajiem pieprasījumiem.

Pirmais uzdevums ir iegūt nepieciešamo paketi Nginx instalēšanai un pēc tam to instalēt.Iekšēji Ansible pārbaudīs, vai direktorijs pastāv, un izveidos to, ja tā nav, pretējā gadījumā tas neko nedarīs.

Nākamais uzdevums ir Nginx konfigurēšana.Programmā Nginx konteksti satur detalizētu informāciju par konfigurāciju.

Šeit veidne ir fails, kuru varat izvietot resursdatoros. Tomēr veidņu failos ir arī daži atsauces mainīgie, kas tiek iegūti no mainīgajiem, kas definēti kā daļa no Ansible playbook, vai faktiem, kas apkopoti no saimniekiem. Fakti, kas satur konfigurācijas informāciju, tiek izvilkti no avota direktorija un tiek kopēti uz galamērķa direktoriju.

Apstrādātāji šeit nosaka darbību, kas jāveic tikai pēc paziņojuma par uzdevumiem vai stāvokļa izmaiņām. Šajā spēles grāmatā mēs definējām, paziņot: restartējiet Nginx apdarinātāju, kas restartēs Nginx, tiklīdz faili un veidnes būs nokopēti resursdatoros.

Tagad saglabājiet failu un izejiet.

6. solis: Tagad palaidīsim šo atskaņošanas grāmatu, izmantojot tālāk norādīto komandu:

ansible-playbook .yml

c ++, izmantojot nosaukumvietu

Iepriekš redzamajā ekrānuzņēmumā mēs varam redzēt, ka mūsu uzdevums tiek izpildītā Nginx instalēšana.

7. solis: Pārbaudīsim, vai Nginx ir instalēts manā resursdatorā. Izmantojiet zemāk esošo komandu:

ps waux | grep nginx

Iepriekš redzamajā ekrānuzņēmumā varat redzēt, ka darbojas dažādi procesa ID 3555 un 103316, kas nodrošina, ka Nginx darbojas jūsu resursdatora mašīnās.

Apsveicam! Jūs esat veiksmīgi izvietojis Nginx savā resursdatorā, izmantojot Ansible playbooks. Es ceru, ka jums patika lasīt šo Ansible Tutorial emuāru. Lūdzu, dariet man zināmu, ja jums ir kādi jautājumi zemāk esošajā komentāru sadaļā.

Ja atradāt šo “ Ansible apmācība ”Attiecīgs, pārbaudiet Autors: Edureka, uzticams tiešsaistes mācību uzņēmums ar vairāk nekā 250 000 apmierinātu izglītojamo tīklu visā pasaulē. Edureka DevOps sertifikācijas apmācības kurss palīdz izglītojamajiem iegūt zināšanas par dažādiem DevOps procesiem un rīkiem, piemēram, Leļļu, Jenkins, Ansible, Nagios un Git vairāku SDLC darbību automatizēšanai.