Ansible Rolles - ultimat sätt att lösa upp dina Playbooks



Den här Ansible Rolles-bloggen berättar om hur roller används för att göra komplexa spelböcker läsbara och återanvändbara med en demonstart för att skapa en MEAN Stack.

Ansible tillåter oss att automatisera konfigurationshanteringen av system och lägga till valfritt antal kunder som vi vill. Har du någonsin undrat hur komplex detta kan bli? Har du någonsin undrat hur lång och förvirrande spelböckerna kan bli? Hur gör Ansible det fortfarande som en vind? Det använder konceptet Ansible Rolles och det är vad vi ska prata om i den här bloggen.

hitta det största antalet i array java

Ämnen som behandlas:





Om du vill behärska DevOps, ' kursen skulle vara ditt alternativ.

Introduktion till ansvarsfulla roller

Ansible Role är ett koncept som handlar om idéer snarare än händelser. Det är i grunden en annan abstraktionsnivå som används för att organisera spelböcker. De ger ett skelett för en oberoende och återanvändbar samling av variabler, uppgifter, mallar, filer och moduler som automatiskt kan laddas i spelboken. Playbooks är en samling roller. Varje roll har specifik funktionalitet.



Låt mig förklara detta med ett exempel. Anta att du vill att din spelbok ska utföra 10 olika uppgifter på 5 olika system, skulle du använda en enda spelbok för detta? Nej, att använda en enda spelbok kan göra den förvirrande och utsatt för misstag. Istället kan du skapa tio olika roller där varje roll kommer att utföra en uppgift. Allt du behöver göra är att nämna namnet på rollen i spelboken för att ringa dem. Du lär dig hur du använder roller längre i den här bloggen.

Återanvändbarhet av ansvarsfulla roller

Ansible Rolles är oberoende av varandra. Utförandet av en roll beror inte på andra och därför kan de återanvändas. Du kan även ändra och anpassa dessa roller enligt dina krav. Detta minskar vår uppgift att skriva om en hel koddel varje gång vi behöver den, vilket förenklar vårt arbete.

Låt oss gå tillbaka till föregående exempel. Du har skrivit 10 roller och nu måste du använda fem av dem för en annan uppsättning provisionering. Skriver du hela spelboken igen? Nej, du återanvänder bara dessa 5 roller genom att ringa dem i den här nya Playbook. Du kan också göra ändringar om det behövs men det skulle ändå spara mycket av din tid.



Låt oss säga att du måste skriva en spelbok för att ställa in LAMP stack. Du måste skapa fyra roller, vardera för att skapa Linux, Apache, MongoDB och PHP. Om du i framtiden vill ha en annan spelbok för att ställa in såväl LAMP-stack som WordPress, kommer du igen att skapa nya roller för LAMP stack och WordPress? Nej! Du kan helt enkelt återanvända de äldre rollerna (används för LAMP-stack) och dessutom skapa en ny roll för WordPress.

Rollkatalogstruktur

Använd Ansible Roles och förvänta dig att filer har en viss filstruktur. Den mest förvirrande delen av att använda roller är att förstå filhierarkin. Ansible tillhandahåller en funktion som heter Ansible Galaxy som hjälper dig att spela med roller. Vi vet redan var vår Ansible finns på Ubuntu (/ etc / ansible). Har du någonsin sett en katalog som heter roller under / etc / ansible? Den katalogen finns exakt av denna anledning. Du skapar olika roller i den här katalogen.

Katalogen ser ut så här:

Tree - Ansible Rolles - Edureka

Du kan skapa en roll med ansible-galaxy init kommando inuti / etc / ansible / roller.

$sudoansible-galaxy init

Du ser att andra rollkataloger också skulle ha skapats.

Dessa kataloger är uppgifter, hanterare, standardinställningar, vars, filer, mallar och meta och en README.mdfil.

Uppgifter - Innehåller huvudlistan över uppgifter som ska utföras av rollen. deninnehållermain.yml-filen för just den rollen.

Hanterare - Innehåller hanterare som kan användas av den här rollen eller till och med var som helst utanför denna roll.

Standardvärden - Innehåller standardvariablerna som ska användas av denna roll.

Vars - Den här katalogen består av andra variabler som ska användas av rollen. Dessa variabler kan definieras i din spelbok, men det är en bra vana att definiera dem i det här avsnittet.

jämförelse av verktyg för automatisering av robotprocesser

Filer - Innehåller filer som kan distribueras av denna roll. Den innehåller filer som måste skickas till värdarna medan rollen konfigureras.

Meta - Definierar metadata för denna roll. I grund och botten innehåller den filer som skapar rollberoenden.

Varje uppgift katalogen måste bestå av en main.yml fil där den faktiska koden för just den rollen skrivs.

Låt oss nu förstå arbetet eller rollerna med en demo om installation av MEAN Stack.

Demo: Installera MEAN Stack med Ansible Rolles

Jag kommer att demonstrera hur jag installerar MEAN Stack med Ansible Roles genom att bara köra en enda spelbok. Vi kommer att ha tre roller: 1) Installera förutsättningar, 2) Installera MongoDB och 3) Installera NodeJS. Jag antar att du redan har gjort det installerade Ansible och gjorde en server-klientanslutning på Ubuntu . Låt oss börja spela med Ansible Rolles.

Steg 1 - Navigera till / etc / ansible / role-katalogen och skapa rollerna för förutsättningar, MongoDB och NodeJS.

$ cd / etc / ansible / roller $ sudo ansible-galaxy init förutsättningar $ sudo ansible-galaxy init mongodb $ sudo ansible-galaxy init nodejs

Du bör nu se tre roller i din 'roller' -katalog.

hadoop admin roller och ansvar

Steg 2 - Skriv main.yml för förutsättningar som installerar Git.

$ cd förutsättningar / uppgifter / main.yml --- - namn: Installera git apt: namn: git tillstånd: nuvarande update_cache: ja

Steg 3 - Skriv main.yml för rollen MongoDB

$ cd /mongodb/tasks/main.yml --- - namn: MongoDB - Importera offentlig nyckel apt_key: keyerver: hkp: //keyserver.ubuntu.com: 80 id: EA312927 - name: MongoDB - Add repository apt_repository: filnamn: '/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 - namn: MongoDB - Installera MongoDB apt: namn: mongodb-org-tillstånd: nuvarande uppdateringscache: ja - namn: Starta mongodskal: 'mongod &'

Steg 4 - Skriv main.yml förnodjsroll

$ cd nodejs / Tasks / main.yml --- - namn: Node.js - Hämta skript get_url: url: 'http://deb.nodesource.com/setup_6.x' dest: '{{var_node}} / nodejs .sh '- namn: Node.js - Ställ in exekveringsbehörighet för skriptfil: sökväg:' {{var_node}} / nodejs.sh '-läge:' u + x '- namn: Node.js - Kör installationsskriptets skal:' {{var_node}} / nodejs.sh '- namn: Node.js - Ta bort installationsskriptfil: sökväg:' {{var_node}} / nodejs.sh 'tillstånd: frånvarande - namn: Node.js - Installera 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

Steg 5 - Skriv din huvudspelbok

$ cd /etc/ansible/mean.yml --- - värdar: noder remote_user: ansible blir: ja blir_metod: sudo vars: #variable behövs under nodinstallation var_node: / tmp-roller: - förutsättningar - mongodb - nodejs

Nu när vi har definierat roller för att installera förutsättningarna, MongoDB och NodeJs, låt oss distribuera dem. Kör spelboken med följande kommando.

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

Som du kan se har alla uppgifter utförts och deras status har ändrats. Detta innebär att spelbokens ändringar har tillämpats på din server såväl som på värden. Att ställa in MEAN Stack är bara ett exempel. Du kan ställa in bokstavligen allt och allt med Ansible Roles.

Detta leder oss till slutet av Ansible Roles-bloggen. Om du tycker att den här artikeln är till hjälp, kolla in ' erbjuds av Edureka. Den täcker alla verktyg som har gjort IT-industrin bättre.

Har du en fråga till oss? Vänligen posta det på så återkommer vi till dig.