Ansible Roles - ülim viis oma raamatute lahti harutamiseks



See ansible rollide ajaveeb räägib sellest, kuidas rolle kasutatakse keeruliste mänguraamatute loetavaks ja korduvkasutatavaks muutmiseks, kasutades selleks MEAN-virna seadistamise demonstart.

Ansible võimaldab meil automatiseerida süsteemide konfiguratsioonihaldust ja lisada soovitud arv kliente. Kas olete kunagi mõelnud, kui keeruliseks see võib minna? Kas olete kunagi mõelnud, kui pikaks ja segaseks võivad mänguraamatud minna? Kuidas muudab Ansible selle endiselt imelihtseks? Selles kasutatakse mõistet Ansible Roles ja sellest me siin blogis räägimegi.

Käsitletud teemad:





Kui soovite DevOpsit omandada, ' kursus oleks teie valikuvõimalus.

Sissejuhatus võimalikesse rollidesse

Ansible Role on mõiste, mis tegeleb pigem ideede kui sündmustega. Põhimõtteliselt on see veel üks abstraktsioonide tase, mida kasutatakse mänguraamatute korraldamiseks. Need pakuvad skeleti sõltumatule ja korduvkasutatavale muutujate, ülesannete, mallide, failide ja moodulite kogumile, mille saab automaatselt esitusraamatusse laadida. Mänguraamatud on rollide kogu. Igal rollil on spetsiifiline funktsionaalsus.



Lubage mul seda selgitada ühe näitega. Oletame, et soovite, et teie mänguraamat täidaks 10 erinevat ülesannet 5 erinevas süsteemis, kas kasutaksite selleks ühte mänguraamatut? Ei, ühe mänguraamatu kasutamine võib selle segadusse ajada ja altid komistustele. Selle asemel saate luua 10 erinevat rolli, kus iga roll täidab ühte ülesannet. Seejärel peate vaid nimetama mänguraamatus oleva rolli nime, et neile helistada. Selles blogis saate teada, kuidas rolle edaspidi kasutada.

Võimalike rollide korduvkasutus

Ansible Rollid on üksteisest sõltumatud. Ühe rolli täitmine ei sõltu teistest ja seetõttu saab neid uuesti kasutada. Neid rolle saate isegi vastavalt oma vajadustele muuta ja isikupärastada. See vähendab meie ülesannet kogu koodilõik iga kord ümber kirjutada, kui seda vajame, lihtsustades seeläbi oma tööd.

Tuleme tagasi eelmise näite juurde. Olete kirjutanud 10 rolli ja nüüd peate 5 neist kasutama teise komplekti jaoks. Kas kirjutate kogu mänguraamatu uuesti? Ei, te kasutate neid 5 rolli lihtsalt uuesti, helistades neile selles uues Playbookis. Vajadusel saate ka muudatusi teha, kuid see säästaks ikkagi palju teie aega.



Oletame, et peate kirjutama LAMP-virna seadistamiseks mänguraamatu. Linuxi, Apache, MongoDB ja PHP loomiseks peate looma 4 rolli. Kui soovite tulevikus LAMP-i virna ja WordPressi seadistamiseks veel üht mänguraamatut, kas loote LAMP-i virnale ja WordPressile jälle uued rollid? Ei! Saate vanemaid rolle (mida kasutatakse LAMP-i pinu jaoks) lihtsalt uuesti kasutada ja lisaks WordPressile uue rolli luua.

Rollide kataloogi struktuur

Kasutades rakendatavaid rolle, eeldage, et failid oleksid kindlas failistruktuuris. Rollide kasutamise kõige segasem osa on failihierarhia mõistmine. Ansible pakub funktsiooni nimega Ansible Galaxy, mis aitab teil rollidega mängida. Me juba teame, kus meie Ansible asub Ubuntus (/ etc / ansible). Kas olete kunagi näinud kataloogi nimega rollid / etc / ansible all? See kataloog on täpselt sel põhjusel olemas. Selles kataloogis loote erinevad rollid.

Kataloog näeb välja selline:

Puu - anonüümsed rollid - Edureka

Rolli saate luua, kasutades ansible-galaktika init käsk / etc / ansible / rollid.

$sudoansible-galaxy init

Näete, et oleks loodud ka teisi rollikatalooge.

Need kataloogid on ülesanded, käitlejad, vaikeväärtused, varsid, failid, mallid, meta ja README.mdfaili.

Ülesanded - sisaldab peamist loendit ülesannetest, mida roll täidab. Seesisaldabselle konkreetse rolli main.yml-fail.

Töötlejad - Sisaldab käitlejaid, mida see roll võib kasutada või isegi kõikjal väljaspool seda rolli.

Vaikimisi - sisaldab vaikimisi muutujaid, mida see roll hakkab kasutama.

Kelle oma - See kataloog koosneb muudest muutujatest, mida roll kasutab. Neid muutujaid saab teie mänguraamatus määratleda, kuid on hea harjumus need selles jaotises määratleda.

Toimikud - sisaldab faile, mida saab selle rolliga juurutada. See sisaldab faile, mis tuleb rolli seadistamisel hostidele saata.

Meta - määratleb selle rolli metaandmed. Põhimõtteliselt sisaldab see faile, mis tuvastavad rollisõltuvused.

Iga ülesanne kataloog peab koosnema a main.yml fail, kuhu on kirjutatud selle konkreetse rolli tegelik kood.

Mõistame nüüd MEAN Stacki installimise demo tööd või rolle.

Demo: MEAN Stacki installimine Ansible Role'i ​​abil

Demonstreerin, kuidas rakendust MEAN Stack kasutades rakendust Ansible Roles, käivitades lihtsalt ühe üksiku raamatu. Meil on kolm rolli: 1) eelduste installimine, 2) MongoDB ja 3) NodeJS-i installimine. Ma eeldan, et olete seda juba teinud installis Ansible ja lõi Ubuntu serveri-kliendi ühenduse . Alustame mängimist Ansible Rolesiga.

Samm 1 - Navigeerige kataloogi / etc / ansible / role ja looge eelduste, MongoDB ja NodeJS rollid.

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

Nüüd peaksite oma rollide kataloogis nägema kolme rolli.

2. samm - Eeltingimuste jaoks, mis installivad Giti, kirjutage main.yml.

$ cd eeltingimused / ülesanded / main.yml --- - nimi: Installige git apt: nimi: giti olek: praegune update_cache: jah

3. samm - Kirjutage MongoDB rolli jaoks main.yml

$ cd /mongodb/tasks/main.yml --- - nimi: MongoDB - importige avalik võti apt_key: keyserver: hkp: //keyserver.ubuntu.com: 80 id: EA312927 - nimi: MongoDB - lisage hoidla apt_repository: failinimi: '/etc/apt/sources.list.d/mongodb-org-3.2.list' repo: 'deb http://repo.mongodb.org/apt/ubuntu trusty / mongodb-org / 3.2 multiverse' olek: praegune update_cache : jah - nimi: MongoDB - installige MongoDB apt: nimi: mongodb-org olek: praegune update_cache: jah - nimi: Start mongodi kest: 'mongod &'

4. samm - kirjutage domeenile main.ymlnodejsroll

$ cd nodejs / task / main.yml --- - nimi: Node.js - hankige skript get_url: url: 'http://deb.nodesource.com/setup_6.x' dest: '{{var_node}} / nodejs .sh '- nimi: Node.js - määrake skriptifaili täitmisluba: tee:' {{var_node}} / nodejs.sh 'režiim:' u + x '- nimi: Node.js - käivitage installiskripti kest:' {{var_node}} / nodejs.sh '- nimi: Node.js - eemaldage installiskriptifail: tee:' {{var_node}} / nodejs.sh 'olek: puudub - nimi: Node.js - installige Node.js apt : nimi = {{item}} olek = praegune update_cache = jah with_items: - build-essential - nodejs - nimi: Node.js - installige bower ja loksutage globaalselt npm: name = {{item}} state = present global = yes with_items : - kummardaja - lonks

5. samm - Kirjutage oma peamine mänguraamat

$ cd /etc/ansible/mean.yml --- - hosts: sõlmed remote_user: ansible saama: jah tapti_metood: sudo vars: # muutuja vajalik sõlme installimisel var_node: / tmp rollid: - eeltingimused - mongodb - nodejs

Nüüd, kui eeltingimuste installimiseks on määratletud rollid, on MongoDB ja NodeJs, juurutame need. Käivitage mänguraamat järgmise käsu abil.

$sudoansible-playbook / jne / võimalik / keskmine.yml -K

Nagu näete, on kõik ülesanded täidetud ja nende olek on muutunud. See tähendab, et playbooki muudatused on rakendatud nii teie serveris kui ka hostis. MEAN Stacki seadistamine on vaid üks näide. Ansible Roles'i abil saate seadistada sõna otseses mõttes kõik ja kõik.

See viib meid Ansible Roles'i ajaveebi lõppu. Kui leiate, et see artikkel on kasulik, vaadake järgmist ' pakkus Edureka. See hõlmab kõiki tööriistu, mis on IT-tööstuse paremaks muutnud.

Kas teil on meile küsimus? Palun postitage see aadressile ja me pöördume teie poole.

kuidas leida massiivi java suurim arv