„Ansible Roles“ - geriausias būdas išpainioti savo „Playbooks“



Šiame tinklaraštyje „Ansible Roles“ kalbama apie tai, kaip vaidmenys naudojami sudarant sudėtingus grojaraščius, kuriuos galima skaityti ir naudoti pakartotinai, naudojant „MEAN Stack“ sukūrimą.

„Ansible“ leidžia mums automatizuoti sistemų konfigūracijos valdymą ir pridėti bet kokį klientų skaičių, kiek norime. Ar kada pagalvojote, kaip tai gali tapti sudėtinga? Ar kada pagalvojote, kiek laiko ir painūs gali būti pjesės? Kaip Ansible vis dar atrodo, kad tai vėjas? Jame vartojama „Ansible Roles“ sąvoka ir apie tai kalbėsime šiame tinklaraštyje.

Apimtos temos:



Jei norite įsisavinti „DevOps“, ' kursas būtų jūsų pasirinkimas.

Įvadas į galimus vaidmenis

„Ansible Role“ yra sąvoka, susijusi su idėjomis, o ne su įvykiais. Iš esmės tai dar vienas abstrakcijos lygis, naudojamas organizuojant grojaraščius. Jie suteikia nepriklausomo ir daugkartinio naudojimo kintamųjų, užduočių, šablonų, failų ir modulių rinkinį, kurį galima automatiškai įkelti į grojaraštį. Pjesės yra vaidmenų rinkinys. Kiekvienas vaidmuo turi specifinį funkcionalumą.



Leiskite man tai paaiškinti pavyzdžiu. Tarkime, kad norite, kad jūsų grojaraštis atliktų 10 skirtingų užduočių 5 skirtingose ​​sistemose, ar tam naudotumėte vieną pjesę? Ne, naudojant vieną pjesę, ji gali būti paini ir linkusi suklysti. Vietoj to galite sukurti 10 skirtingų vaidmenų, kur kiekvienas vaidmuo atliks vieną užduotį. Tada viskas, ką jums reikia padaryti, yra paminėti vaidmens pavadinimą pjesėje, kad galėtumėte jiems paskambinti. Šiame tinklaraštyje sužinosite, kaip toliau naudoti vaidmenis.

Galimų vaidmenų pakartotinis panaudojimas

„Ansible Roles“ yra nepriklausomi vienas nuo kito. Vieno vaidmens vykdymas nepriklauso nuo kitų, todėl juos galima pakartotinai naudoti. Jūs netgi galite modifikuoti ir pritaikyti šiuos vaidmenis pagal savo poreikius. Tai sumažina mūsų užduotį perrašyti visą kodo sekciją kiekvieną kartą, kai mums to reikia, taip supaprastindami savo darbą.

Grįžkime prie ankstesnio pavyzdžio. Parašėte 10 vaidmenų ir dabar 5 iš jų turite naudoti kitam atidėjinių rinkiniui. Ar vėl parašote visą pjesę? Ne, jūs tiesiog pakartotinai naudojate tuos 5 vaidmenis, paskambindami jiems į šią naują „Playbook“. Jei reikia, taip pat galite atlikti pakeitimus, tačiau tai vis tiek sutaupys daug jūsų laiko.



Tarkime, kad jums reikia parašyti grojaraštį, kad sukurtumėte LAMP kaminą. Turite sukurti 4 vaidmenis, kurių kiekvienas skirtas „Linux“, „Apache“, „MongoDB“ ir PHP kūrimui. Ar ateityje dar kartą sukursite naujus LAMP kamino ir „WordPress“ vaidmenis, jei norite sukurti kitą „LAMP“ šūsnio ir „WordPress“ sąrankos knygą? Ne! Galite paprasčiausiai iš naujo naudoti senesnius vaidmenis (naudojamus LAMP kamino atveju) ir papildomai sukurti naują „WordPress“ vaidmenį.

Vaidmenų katalogo struktūra

Naudodami „Ansible Roles“ tikėkitės, kad failai bus tam tikroje failų struktūroje. Painiausia vaidmenų naudojimo dalis yra failų hierarchijos supratimas. „Ansible“ suteikia galimybę vadinti „Ansible Galaxy“, kuri padeda jums vaidinti vaidmenis. Mes jau žinome, kur mūsų „Ansible“ yra „Ubuntu“ (/ etc / ansible). Ar kada nors matėte katalogą, pavadintą vaidmenimis, esančiame aplanke / etc / ansible? Tas katalogas egzistuoja būtent dėl ​​šios priežasties. Šiame kataloge sukuriate skirtingus vaidmenis.

java analizuoti eilutę iki šiol

Katalogas atrodys taip:

Medis - nepažįstami vaidmenys - Edureka

Vaidmenį galite sukurti naudodami negrįžtama-galaktika inicijuoti komandą / etc / ansible / vaidmenys.

$sudoansible-galaxy init

Pamatysite, kad taip pat būtų sukurti kiti vaidmenų katalogai.

Šie katalogai yra užduotys, tvarkytuvai, numatytieji parametrai, vars, failai, šablonai, meta ir README.mdfailą.

Užduotys - Pateikiamas pagrindinis užduočių, kurias turi atlikti vaidmuo, sąrašas. Taiyramain.yml failas tam tikram vaidmeniui.

Tvarkytojai - Sudėtyje yra tvarkytuvų, kuriuos gali naudoti šis vaidmuo ar net visur, kur nėra šio vaidmens.

Numatytieji - Yra numatytieji kintamieji, kuriuos naudos šis vaidmuo.

Kieno - Šis katalogas susideda iš kitų kintamųjų, kuriuos naudos vaidmuo. Šiuos kintamuosius galima apibrėžti jūsų knygelėje, tačiau juos įprasta apibrėžti šiame skyriuje.

Failai - Yra failai, kuriuos gali dislokuoti šis vaidmuo. Jame yra failai, kuriuos reikia nusiųsti pagrindiniams kompiuteriams konfigūruojant vaidmenį.

Meta - Apibrėžia šio vaidmens metaduomenis. Iš esmės joje yra failai, kurie nustato priklausomybes nuo vaidmens.

Kiekvienas užduotis katalogą turi sudaryti a main.yml failas, kuriame parašytas tikrasis konkretaus vaidmens kodas.

Dabar supraskime „MEAN Stack“ diegimo darbus ar vaidmenis su demonstracine versija.

Demonstracija: „MEAN Stack“ diegimas naudojant „Ansible Roles“

Aš pademonstruosiu, kaip įdiegti „MEAN Stack“ naudojant „Ansible Roles“, tiesiog vykdant vieną vienintelę pjesę. Turėsime tris vaidmenis: 1) būtinų sąlygų įdiegimas, 2) „MongoDB“ ir 3) „NodeJS“ įdiegimas. Aš darau prielaidą, kad jūs jau tai padarėte įdiegė „Ansible“ ir užmezgė serverio ir kliento ryšį „Ubuntu“ . Pradėkime žaisti su „Ansible Roles“.

1 žingsnis - Eikite į / etc / ansible / role katalogą ir sukurkite prielaidų, „MongoDB“ ir „NodeJS“, vaidmenis.

$ cd / etc / ansible / role $ sudo ansible-galaxy init prielaidos $ sudo ansible-galaxy init mongodb $ sudo ansible-galaxy init nodejs

Dabar „vaidmenų“ kataloge turėtumėte pamatyti tris vaidmenis.

2 žingsnis - Parašykite main.yml apie būtinas sąlygas, kurios įdiegia „Git“.

$ cd prielaidos / užduotys / main.yml --- - vardas: Įdiekite „git apt“: vardas: „git“ būsena: esama „update_cache“: taip

3 žingsnis - Parašykite main.yml už MongoDB vaidmenį

$ cd /mongodb/tasks/main.yml --- - vardas: MongoDB - Importuoti viešąjį raktą apt_key: keyserver: hkp: //keyserver.ubuntu.com: 80 id: EA312927 - vardas: MongoDB - Pridėti saugyklą apt_repository: failo pavadinimas: '/etc/apt/sources.list.d/mongodb-org-3.2.list' repo: 'deb http://repo.mongodb.org/apt/ubuntu trusty / mongodb-org / 3.2 multiverse' būsena: dabartinė „update_cache“ : taip - vardas: MongoDB - įdiekite „MongoDB apt“: vardas: „mongodb-org“ būsena: esama „update_cache“: taip - pavadinimas: „Start mongod shell“: 'mongod &'

4 žingsnis - Parašykite main.ymlnodejsvaidmuo

$ cd nodejs / task / main.yml --- - vardas: Node.js - Gauti scenarijų get_url: url: 'http://deb.nodesource.com/setup_6.x' dest: '{{var_node}} / nodejs .sh '- vardas: Node.js - Nustatykite vykdymo leidimą scenarijaus failui: kelias:' {{var_node}} / nodejs.sh 'režimas:' u + x '- vardas: Node.js - Vykdyti diegimo scenarijaus apvalkalą:' {{var_node}} / nodejs.sh '- vardas: Node.js - Pašalinkite diegimo scenarijaus failą: kelias:' {{var_node}} / nodejs.sh 'būsena: nėra - vardas: Node.js - įdiekite Node.js apt : vardas = {{item}} būsena = esamas „update_cache“ = taip su_elementais: - „build-essential“ - „nodejs“ - pavadinimas: „Node.js“ - įdiekite „Bower“ ir „globp“ visame pasaulyje npm: name = {{item}} būsena = esamoji global = taip su : - lenkėjas - gurkšnis

5 žingsnis - Parašykite savo pagrindinę pjesę

$ cd /etc/ansible/mean.yml --- - kompiuteriai: mazgai remote_user: ansible tapti: taip tapti_metodas: sudo vars: #kintamasis reikalingas diegiant mazgą var_node: / tmp vaidmenys: - išankstinės sąlygos - mongodb - nodejs

Dabar, kai nustatėme išankstinių sąlygų įdiegimo vaidmenis, M.ongoDB ir NodeJs, dislokuokime juos. Vykdykite grojaraštį naudodami šią komandą.

$sudoansible-playbook /etc/ansible/mean.yml -K

Kaip matote, visos užduotys buvo atliktos ir pasikeitė jų būsena. Tai reiškia, kad „playbook“ pakeitimai buvo pritaikyti jūsų serveryje ir pagrindiniame kompiuteryje. „MEAN Stack“ nustatymas yra tik vienas pavyzdys. Naudodamiesi „Ansible Roles“ galite nustatyti bet ką ir viską.

Tai priveda prie „Ansible Roles“ tinklaraščio pabaigos. Jei jums atrodo, kad šis straipsnis yra naudingas, patikrinkite ' pasiūlė Edureka. Ji apima visus įrankius, kurie pagerino IT pramonę.

Turite mums klausimą? Prašau paskelbti ir mes su jumis susisieksime.

c ++ tipo konversija