Ansible Rolles - Ultimate måte å løse opp Playbooks



Denne Ansible Roles-bloggen snakker om hvordan roller brukes til å gjøre komplekse lekebøker lesbare og gjenbrukbare med en demonstart for å sette opp en MEAN Stack.

Ansible lar oss automatisere konfigurasjonsadministrasjonen av systemer og legge til et hvilket som helst antall klienter som vi ønsker. Har du noen gang lurt på hvor komplisert dette kan bli? Har du noen gang lurt på hvor lenge og forvirrende spillbøkene kan bli? Hvordan får Ansible det til å virke som en lek? Den bruker konseptet Ansible Roles, og det er det vi skal snakke om i denne bloggen.

Emner som dekkes:





Hvis du ønsker å mestre DevOps, ' selvfølgelig ville være ditt valg til alternativet.

Introduksjon til Ansible Roller

Ansible Role er et konsept som handler om ideer i stedet for hendelser. Det er i utgangspunktet et annet abstraksjonsnivå som ble brukt til å organisere spillbøker. De gir et skjelett for en uavhengig og gjenbrukbar samling av variabler, oppgaver, maler, filer og moduler som automatisk kan lastes inn i spillboken. Playbooks er en samling av roller. Hver rolle har spesifikk funksjonalitet.



La meg forklare dette med et eksempel. Anta at du vil at lekeboken din skal utføre 10 forskjellige oppgaver på 5 forskjellige systemer, vil du bruke en enkelt spillbok til dette? Nei, bruk av en enkelt spillbok kan gjøre den forvirrende og utsatt for tabber. I stedet kan du opprette 10 forskjellige roller, der hver rolle utfører en oppgave. Så, alt du trenger å gjøre er å nevne navnet på rollen i lekeboken for å ringe dem. Du lærer hvordan du bruker roller videre i denne bloggen.

Gjenbrukbarhet av brukbare roller

Ansible Roller er uavhengige av hverandre. Utførelsen av en rolle er ikke avhengig av andre, og de kan derfor brukes på nytt. Du kan til og med endre og tilpasse disse rollene i henhold til dine behov. Dette reduserer oppgaven vår med å omskrive en hel del av koden hver gang vi trenger den, og forenkler arbeidet vårt.

La oss gå tilbake til forrige eksempel. Du har skrevet 10 roller, og nå må du bruke 5 av dem til et annet sett med klargjøring. Skriver du hele spillboken igjen? Nei, du bare bruker disse 5 rollene ved å ringe dem i denne nye Playbook. Du kan også gjøre endringer om nødvendig, men det vil fortsatt ende opp med å spare mye tid.



La oss si at du må skrive en lekebok for å sette opp LAMP-stakken. Du må opprette fire roller, hver for å lage Linux, Apache, MongoDB og PHP. I fremtiden vil du igjen opprette nye roller for LAMP stack og WordPress, hvis du vil ha en annen spillbok for å konfigurere LAMP stack så vel som WordPress. Nei! Du kan bare bruke de eldre rollene på nytt (brukes til LAMP-stakken) og i tillegg opprette en ny rolle for WordPress.

Rollekatalogstruktur

Bruk Ansible Roles, forvent at filene skal ha en viss filstruktur. Den mest forvirrende delen av å bruke roller er å forstå filhierarkiet. Ansible gir en funksjon kalt Ansible Galaxy som hjelper deg å spille med roller. Vi vet allerede hvor Ansible er på Ubuntu (/ etc / ansible). Har du noen gang sett en katalog som heter roller under / etc / ansible? Den katalogen eksisterer nøyaktig av denne grunn. Du oppretter forskjellige roller i denne katalogen.

Katalogen vil se slik ut:

Tree - Ansible Rolles - Edureka

Du kan opprette en rolle ved hjelp av ansible-galaxy init kommando inne i / etc / ansible / roller.

$sudoansible-galaxy init

hadoop admin roller og ansvar

Du ser at andre rollekataloger også ville blitt opprettet.

Disse katalogene er oppgaver, håndterere, standardinnstillinger, vars, filer, maler og meta og en README.mdfil.

Oppgaver - Inneholder hovedlisten over oppgaver som skal utføres av rollen. Deninneholdermain.yml-filen for den aktuelle rollen.

Handlere - Inneholder håndtere som kan brukes av denne rollen eller til og med hvor som helst utenfor denne rollen.

Standardinnstillinger - Inneholder standardvariablene som skal brukes av denne rollen.

Hvem sin - Denne katalogen består av andre variabler som skal brukes av rollen. Disse variablene kan defineres i spillboken din, men det er en god vane å definere dem i denne delen.

Filer - Inneholder filer som kan distribueres av denne rollen. Den inneholder filer som må sendes til vertene mens du konfigurerer rollen.

Meta - Definerer metadata for denne rollen. I utgangspunktet inneholder den filer som etablerer rolleavhengighet.

Hver oppgave katalogen må bestå av en main.yml filen der den faktiske koden for den aktuelle rollen er skrevet.

La oss nå forstå arbeidet eller rollene med en demo om å installere MEAN Stack.

Demo: Installere MEAN Stack ved hjelp av Ansible Roles

Jeg skal demonstrere hvordan jeg installerer MEAN Stack ved hjelp av Ansible Roles ved å bare utføre en enkelt spillbok. Vi kommer til å ha tre roller: 1) Installere forutsetninger, 2) Installere MongoDB og 3) Installere NodeJS. Jeg antar at du allerede har gjort det installerte Ansible og opprettet en server-klientforbindelse på Ubuntu . La oss begynne å spille med Ansible Roles.

Trinn 1 - Naviger til / etc / ansible / role-katalogen og opprett rollene for forutsetninger, MongoDB og NodeJS.

$ cd / etc / ansible / roller $ sudo ansible-galaxy init forutsetninger $ sudo ansible-galaxy init mongodb $ sudo ansible-galaxy init nodejs

Nå skal du se tre roller i katalogen din.

Steg 2 - Skriv main.yml for forutsetninger som installerer Git.

$ cd forutsetninger / oppgaver / main.yml --- - navn: Installer git apt: navn: git tilstand: nåværende update_cache: ja

Trinn 3 - Skriv main.yml for MongoDB-rollen

$ cd /mongodb/tasks/main.yml --- - navn: MongoDB - Importer offentlig nøkkel apt_key: keyserver: hkp: //keyserver.ubuntu.com: 80 id: EA312927 - navn: MongoDB - Legg til depot apt_repository: filnavn: '/etc/apt/sources.list.d/mongodb-org-3.2.list' repo: 'deb http://repo.mongodb.org/apt/ubuntu trusty / mongodb-org / 3.2 multiverse' state: present update_cache : ja - navn: MongoDB - Installer MongoDB apt: navn: mongodb-org tilstand: nåværende update_cache: ja - navn: Start mongod shell: 'mongod &'

Trinn 4 - Skriv main.yml fornodejsrolle

$ cd nodejs / Tasks / main.yml --- - navn: Node.js - Få skript get_url: url: 'http://deb.nodesource.com/setup_6.x' dest: '{{var_node}} / nodejs .sh '- navn: Node.js - Angi kjøringstillatelse til skriptfil: bane:' {{var_node}} / nodejs.sh '-modus:' u + x '- navn: Node.js - Utfør skallet for installasjonsskriptet:' {{var_node}} / nodejs.sh '- navn: Node.js - Fjern installasjonsskriptfil: sti:' {{var_node}} / nodejs.sh 'tilstand: fraværende - navn: Node.js - Installer Node.js apt : name = {{item}} state = present update_cache = yes with_items: - build-essential - nodejs - name: Node.js - Install bower and gulp globalt npm: name = {{item}} state = present global = ja with_items : - bower - gulp

Trinn 5 - Skriv din viktigste spillbok

$ cd /etc/ansible/mean.yml --- - verter: noder remote_user: ansible blir: ja blir_metode: sudo vars: #variable nødvendig under noden installasjon var_node: / tmp roller: - forutsetninger - mongodb - nodejs

Nå som vi har definert roller for å installere forutsetningene, MongoDB og NodeJs, la oss distribuere dem. Utfør lekeboken med følgende kommando.

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

begrensninger i sql med eksempel

Som du kan se, har alle oppgavene blitt utført, og statusen deres er endret. Dette betyr at playbook-endringene har blitt brukt på serveren din så vel som på verten. Å sette opp MEAN Stack er bare ett eksempel. Du kan konfigurere bokstavelig talt alt og alt ved hjelp av Ansible Roles.

Dette fører oss til slutten av Ansible Roles-bloggen. Hvis du synes denne artikkelen er nyttig, kan du sjekke ut ' tilbudt av Edureka. Den dekker alle verktøyene som har gjort IT-bransjen bedre.

Har du et spørsmål til oss? Vennligst legg den ut på og vi kommer tilbake til deg.