„Ansible Tutorial“ - išmokite rašyti „Ansible Playbooks“

Šiame tinklaraštyje „Ansible Tutorial“ sužinosite, kaip rašyti „Ansible“ grojaraščius, adhoc komandas ir atlikti praktinius veiksmus norint įdiegti „Nginx“ pagrindiniame kompiuteryje.

Neįmanoma pamoka

Tikiuosi, kad perėjau mano ankstesnį tinklaraštį, kad sužinotum ir dažniausiai naudojamos „Ansible“ terminologijos. Jei to nepadarėte, patikrinkite tai, kad galėtumėte geriau suprasti šią „Ansible Tutorial“.Jūs taip pat turėtumėte žinoti, kad „Ansible“ yra labai svarbi kaip konfigūracijos valdymo, diegimo ir orkestravimo įrankis.

Leiskite pateikti šios „Ansible Tutorial“ apžvalgą:

„Ansible Playbook“ pamoka | „DevOps“ mokymai Edureka

„Ansible Tutorial“ - „Ansible Playbooks“ rašymas

Grojaraščiai „Ansible“ yra parašyti YAML formatu. Tai yra žmonių suprantama duomenų serijos kalba. Jis paprastai naudojamas konfigūracijos failams. Jis taip pat gali būti naudojamas daugelyje programų, kuriose saugomi duomenys.

Programoje „Ansible“ beveik kiekvienas YAML failas prasideda sąrašu. Kiekvienas sąrašo elementas yra raktų / reikšmių porų sąrašas, paprastai vadinamas „maišu“ arba „žodynu“. Taigi, mes turime žinoti, kaip rašyti sąrašus ir žodynus YAML.

Visi sąrašo nariai yra eilutės, prasidedančios tuo pačiu įtraukos lygiu, prasidedančios „-“ (brūkšnys ir tarpas). Galimos sudėtingesnės duomenų struktūros, tokios kaip žodynų ar mišrių žodynų sąrašai, kurių vertės yra sąrašai arba jų derinys.

pvz. Skyrių, esančių Edurekoje, sąrašas:

skyriai: - rinkodara - pardavimai - sprendimai - turinio rašymas - palaikymas - produktas

Dabar leiskite pateikti žodyno pavyzdį:

-USA-kontinentas: Šiaurės Amerika-sostinė: Vašingtonas DC - gyventojų skaičius: 319 mln

Šeimininkai ir vartotojai:

Kiekvienam žaidimų knygelės žaidimui turite pasirinkti, į kurias infrastruktūros mašinas nukreipti, o kurį nuotolinį vartotoją atlikti užduotis. Norėdami įtraukti pagrindinius kompiuterius į „Ansible“ aprašą, naudosime pagrindinio kompiuterio IP adresus.

Paprastai pagrindiniai kompiuteriai yra vienas ar daugiau grupių arba pagrindinio kompiuterio šablonų, atskirti dvitaškiais, sąrašas. Nuotolinis vartotojas yra tik vartotojo abonemento vardas.

Kintamieji:

Ansible naudoja kintamuosius, kurie buvo apibrėžti anksčiau, kad būtų galima daugiau lankstinti grojaraščius ir vaidmenis. Jie gali būti naudojami norint pereiti per tam tikrų verčių rinkinį, pasiekti įvairią informaciją, pvz., Sistemos pagrindinį pavadinimą, ir pakeisti tam tikras šablonų eilutes konkrečiomis reikšmėmis.

Ansible jau apibrėžia turtingą kintamųjų rinkinį, individualų kiekvienai sistemai. Kai sistemoje veiks „Ansible“, visi faktai ir informacija apie sistemą yra surenkama ir nustatoma kaip kintamieji.

Bet yra a taisyklė kintamiesiems įvardyti. Kintamųjų pavadinimai turėtų būti raidės, skaičiai ir pabraukimai. Kintamieji visada turėtų prasidėti raide. Pvz. wamp_21, port5 yra teisingi kintamųjų pavadinimai, o 01_port, _server yra neteisingi.

Užduotys:

Užduotys leidžia suskaidyti konfigūracijos strategijos dalis į mažesnius failus. Užduotis apima traukimą iš kitų failų. „Ansible“ užduotys beveik atitinka anglišką reikšmę.

Pvz .: įdiegti, atnaujinti ir pan.

Tvarkytojai:

Tvarkytojai yra panašūs į įprastas „Ansible playbook“ užduotis, tačiau jie vykdomi tik tuo atveju, jei užduotyje yra pranešimų direktyva ir nurodoma, kad ji kažką pakeitė. Pvz., Jei pakeistas konfigūracijos failas, užduotis, nurodanti konfigūracijos failą, gali pranešti iš naujo paleisti paslaugą.

Pateiksiu jums grojaraščio, kuriame bus paleista „Apache“ httpd serverio programa, pavyzdį:

----šeimininkai: interneto serveriai kurio: http_port: 80 max_clients: 200 nuotolinis_vartotojas: šaknis užduotys: - vardas: įsitikinkite, kad „apache“ yra naujausia versija yum: vardas = httpd būsena = naujausias - vardas: parašykite apache konfigūracijos failą šabloną: src = / srv / httpd.j2 dest = / etc / httpd.conf pranešti: - paleiskite iš naujo apache - vardas: įsitikinkite, kad „apache“ veikia (ir įgalinkite jį įkrovos metu) paslaugą: vardas = httpd būsena = pradėta įgalinta = taip tvarkytojai: - vardas: paleiskite iš naujo apache paslaugą: vardas = httpd būsena = paleista iš naujo

Tikiuosi, kad pavyzdys jus susies su visais anksčiau minėtais vadovėlių komponentų aprašymais. Jei jums vis dar neaišku, nesijaudinkite, kad visos jūsų abejonės bus aiškios tolesnėje šio tinklaraščio dalyje.

Tai viskas apie pjeses. Knygos, kurias parašysite jūs. Bet „Ansible“ taip pat suteikia jums daugybę modulių, kuriuos galite naudoti.

sujungti rūšiavimo kodą c ++

Neįmanoma pamoka - moduliai

„Ansible“ moduliai yra idempotentiniai. RESTful paslaugos požiūriu, kad operacija (arba paslaugos skambutis) būtų idempotentinė, klientai gali tą patį skambutį pakartotinai atlikti tuo pačiu rezultatu. Kitaip tariant, kelių vienodų užklausų pateikimas turi tą patį poveikį kaip ir pateikiant vieną užklausą.

„Ansible“ yra įvairių tipų moduliai

  • Pagrindiniai moduliai
  • priedų moduliai

Pagrindiniai moduliai

Tai yra moduliai, kuriuos prižiūri pagrindinė „Ansible“ komanda ir kurie visada bus pristatyti su pačia „Ansible“. Jie taip pat gaus šiek tiek didesnį prioritetą už visas užklausas nei „priedai“.

Šių modulių šaltinį „Ansible“ talpina „GitHub“, „Ansible-modules-core“.

Priedai moduliai

Šie moduliai šiuo metu pristatomi su „Ansible“, tačiau ateityje gali būti pristatomi atskirai. Juos taip pat daugiausia prižiūri „Ansible“ bendruomenė. Nepagrindiniai moduliai vis dar yra visiškai naudojami, tačiau gali būti gaunami šiek tiek mažesni atsakymų į klausimus ir užklausų rodikliai.

Laikui bėgant populiarūs „priedų“ moduliai gali būti reklamuojami kaip pagrindiniai moduliai.

Šių modulių šaltinį „Ansible“ talpina „GitHub“ skiltyje „Ansible-modules-extras“.

Pvz .: vienas iš nuotolinio valdymo modulių priedų modulio yra „ipmi_power“ modulis, kuris yra nuotolinių mašinų maitinimo šaltinis. Tam reikia python 2.6 arba naujesnės versijos ir pyghmi paleisti.

Galite naudoti šį modulį, parašydami adhoc komandą, tokią, kokią parašiau žemiau:

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

Neįmanoma pamoka - grąžinti vertybes

„Ansible“ moduliai paprastai pateikia duomenų struktūrą, kurią galima užregistruoti kintamajame arba pamatyti tiesiogiai, kai ją išleidžia „Ansible“ programa. Kiekvienas modulis gali pasirinktinai dokumentuoti savo unikalias grąžinimo vertes.

Keli grąžinimo verčių pavyzdžiai:

  • pakeistas: grįžta su logine reikšme, kai užduotis atlieka pakeitimus.
  • nepavyko: grąžina loginę vertę, jei užduotis nepavyksta
  • msg: ji grąžina eilutę su bendru pranešimu, perduotu vartotojui.

Neįmanoma pamoka - „AdHoc“ komandos

Adhoc komandos yra paprastos vienos eilutės komandos tam tikram veiksmui atlikti. Modulių paleidimas su „Ansible“ komandomis yra adhoc komandos.

Pvz .:

ansible host -m netscaler -a 'nsc_host = nsc.example.com vartotojas = apiuser slaptažodis = apipass' 

Pirmiau nurodyta adhoc komanda naudoja „netscaler“ modulį serveriui išjungti. „Ansible“ yra šimtai modulių, iš kurių galite kreiptis ir rašyti adhoc komandas.

Na, pakanka su visais teoriniais paaiškinimais, leisk man paaiškinti tave Ansible su keliomis rankomis.

„Ansible Tutorial“ - rankos

Aš parašysiu grojaraštį, kad įdiegčiau „Nginx“ savo mazgo / pagrindinio kompiuterio kompiuteryje.

Pradėkime :)

1 žingsnis: Prisijunkite prie savo kompiuterių naudodami SSH. Tam reikia sugeneruoti viešą SSH raktą.

Naudokite toliau pateiktą komandą:

„qlikview“ pamoka žingsnis po žingsnio

ssh-keygen

Generuoti „Ssh Key“ - „Ansible Tutorial“ - „Edureka“

Kaip matote aukščiau esančioje nuotraukoje, komanda ssh-keygen sugeneravo viešą SSH raktą.

2 žingsnis: Kita jūsų užduotis yra nukopijuoti viešąjį SSH raktą į savo kompiuterius. Norėdami tai padaryti, naudokite žemiau esančią komandą:

ssh-copy-id -i šaknis @

Viršuje esanti nuotrauka rodo, kad SSH raktas nukopijuojamas į pagrindinius kompiuterius.

3 žingsnis: Išvardykite savo kompiuterių / mazgų IP adresus.

Naudokite šią komandą:

vi / etc / ansible / hosts

Tai atidarys „vi“ redaktorių, kuriame galėsite išvardyti savo kompiuterių IP adresus. Tai dabar jūsų inventorius.

4 žingsnis: Pabandykime įsitikinti, kad ryšys užmegztas.

Viršutinė momentinė nuotrauka patvirtina, kad ryšys tarp jūsų valdymo mašinos ir pagrindinio kompiuterio buvo užmegztas.

5 žingsnis: Parašykime „playbook“, kad įdiegtume „Nginx“ pagrindiniame kompiuteryje. Savo pjesę galite parašyti „vi“ redaktoriuje. Tam paprasčiausiai sukurkite savo grojaraštį naudodami komandą:

vi

Žemiau pateiktoje momentinėje nuotraukoje parodyta mano knyga, skirta įdiegti „Nginx“, parašytą YAML formatu.

Knygos užduotys YAML apibrėžiamos kaip žodynų sąrašas ir vykdomos iš viršaus į apačią. Jei turime kelis pagrindinius kompiuterius, tada kiekviena pagrindinė kompiuterio užduotis išbandoma prieš pereinant prie kitos. Kiekviena užduotis apibrėžiama kaip žodynas, kuriame gali būti keli klavišai, pvz., „Vardas“ arba „sudo“, kurie žymi užduoties pavadinimą ir ar jai reikalingos sudo privilegijos.

Kintamasis server_port yra nustatytas, kuris klausosi TCP prievado 8080 m gaunamoms užklausoms.

Pirmoji užduotis yra gauti reikiamą paketą „Nginx“ diegimui ir tada jį įdiegti.Viduje „Ansible“ patikrins, ar katalogas yra, ir sukurs, jei jo nėra, kitaip jis nieko nedarys.

Kita užduotis - sukonfigūruoti „Nginx“.„Nginx“ kontekstuose pateikiama išsami konfigūracijos informacija.

Čia šablonas yra failas, kurį galite įdiegti pagrindiniuose kompiuteriuose. Tačiau šablonų failuose taip pat yra keletas informacinių kintamųjų, kurie yra gaunami iš kintamųjų, apibrėžtų kaip „Ansible playbook“ dalis, arba faktų, surinktų iš pagrindinių kompiuterių. Faktai, kuriuose yra išsami konfigūracijos informacija, yra traukiami iš šaltinio katalogo ir nukopijuojami į paskirties katalogą.

Tvarkytojai čia apibrėžia veiksmą, kurį reikia atlikti tik pranešus apie užduotis ar būsenos pakeitimus. Šioje knygelėje mes apibrėžėme pranešti: paleiskite iš naujo „Nginx“ tvarkyklę, kuri iš naujo paleis „Nginx“, kai failai ir šablonai bus nukopijuoti į pagrindinius kompiuterius.

Dabar išsaugokite failą ir išeikite.

6 žingsnis: Dabar paleiskime šią grojaraštį naudodami toliau pateiktą komandą:

ansible-playbook .yml

Aukščiau pateiktoje ekrano kopijoje galime pamatyti, kad mūsų užduotis yra įdiegti „Nginx“.

7 žingsnis: Patikrinkime, ar „Nginx“ yra įdiegtas mano pagrindiniame kompiuteryje. Naudokite toliau pateiktą komandą:

ps waux | grep nginx

Aukščiau pateiktoje ekrano kopijoje galite pamatyti, kad veikia skirtingi proceso ID 3555 ir 103316, kurie užtikrina, kad „Nginx“ veikia jūsų pagrindinėse mašinose.

Sveikiname! Jūs sėkmingai įdiegėte „Nginx“ savo pagrindiniame kompiuteryje naudodami „Ansible playbooks“. Tikiuosi, kad jums patiko skaityti šį „Ansible Tutorial“ tinklaraštį. Praneškite man, jei turite klausimų žemiau esančiame komentarų skyriuje.

Jei radote tai Neįmanoma pamoka ' Aktualus, patikrinkite sukūrė „Edureka“ - patikima internetinė mokymosi įmonė, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą. „Edureka DevOps“ sertifikavimo mokymo kursas padeda besimokantiesiems įgyti įvairių „DevOps“ procesų ir įrankių, tokių kaip „Lėlė“, „Jenkins“, „Ansible“, „Nagios“ ir „Git“, žinių, skirtų automatizuoti kelis SDLC veiksmus.