Tutorial Ansible: aprendre a escriure llibres de joc Ansible



En aquest bloc Ansible Tutorial aprendreu com escriure llibres de reproducció Ansible, ordres adhoc i realitzar pràctiques per desplegar Nginx a la vostra màquina amfitriona.

Tutorial Ansible

Espero que hagueu vist el meu bloc anterior per aprendre i les terminologies d'Ansible més utilitzades. En cas que no ho hàgiu fet, comproveu-ho per obtenir una millor comprensió d’aquest tutorial Ansible.També heu de saber que Ansible constitueix una part crucial de com a eina per a la gestió, desplegament i orquestració de configuracions.

Permeteu-me donar-vos una visió general d'aquest 'Tutorial Ansible':





Tutorial Ansible Playbook | Formació DevOps | Edureka

Tutorial Ansible: escriure llibres de jocs Ansible

Els llibres de jocs en Ansible s’escriuen en format YAML. És un llenguatge de serialització de dades llegible per humans. S’utilitza habitualment per a fitxers de configuració. També es pot utilitzar en moltes aplicacions on s’emmagatzemen dades.



Per Ansible, gairebé tots els fitxers YAML comencen amb una llista. Cada element de la llista és una llista de parells de claus / valors, normalment anomenats 'hash' o 'diccionari'. Per tant, hem de saber escriure llistes i diccionaris a YAML.

Tots els membres d'una llista són línies que comencen al mateix nivell de sagnat que comença amb un '-' (guió i espai). Són possibles estructures de dades més complicades, com ara llistes de diccionaris o diccionaris mixtos els valors dels quals són llistes o una combinació de tots dos.

per exemple. Per obtenir una llista de departaments a edureka:



departaments: - màrqueting - vendes - solucions - redacció de continguts - assistència - producte

Ara deixeu-me donar-vos un exemple de diccionari:

-EUA -continent: Amèrica del Nord -capital: Washington DC -població: 319 milions

Amfitrions i usuaris:

Per a cada reproducció d'un llibre de jocs, podeu triar quines màquines de la vostra infraestructura voleu orientar i quin usuari remot completarà les tasques. Per incloure hosts a l’inventari Ansible, utilitzarem les adreces IP de les màquines host.

En general, els amfitrions són una llista d'un o més grups o patrons d'amfitrions, separats per dos punts. L'usuari remot és només el nom del compte d'usuari.

variables:

Ansible utilitza variables definides anteriorment per permetre una major flexibilitat en els llibres de joc i els rols. Es poden utilitzar per recórrer un conjunt de valors donats, accedir a diverses informacions com el nom d'amfitrió d'un sistema i substituir certes cadenes de plantilles per valors específics.

Ansible ja defineix un ric conjunt de variables, individuals per a cada sistema. Sempre que Ansible s'executarà en un sistema, es recopilaran tots els fets i informació sobre el sistema i es configuraran com a variables.

Però hi ha un regla per a la denominació de variables. Els noms de variables han de ser lletres, números i subratllats. Les variables sempre han de començar amb una lletra. Per exemple. wamp_21, port5 és un nom de variable vàlid, mentre que 01_port, _server no són vàlids.

Tasques:

Les tasques us permeten dividir els bits de la política de configuració en fitxers més petits. La tasca inclou l'extracció d'altres fitxers. Les tasques d'Ansible van gairebé amb el seu significat en anglès.

Per exemple: instal·leu, actualitzeu, etc.

Manipuladors:

Els controladors són com tasques habituals en un llibre de joc Ansible, però només s’executen si la tasca conté una directiva de notificació i també indica que ha canviat alguna cosa. Per exemple, si es modifica un fitxer de configuració, la tasca que fa referència al fitxer de configuració pot notificar a un gestor de reinici del servei.

Deixeu-me donar-vos un exemple de llibre de reproducció que iniciarà el programa del servidor httpd Apache:

----amfitrions: servidors web de qui: http_port: 80 max_clients: 200 usuari_ remot: arrel tasques: - nom: assegureu-vos que apache tingui la versió més recent yum: nom = estat httpd = últim - nom: escriviu el fitxer de configuració apache plantilla: src = / srv / httpd.j2 dest = / etc / httpd.conf notificar: - reinicieu Apache - nom: assegureu-vos que Apache s'està executant (i activeu-lo a l'arrencada) servei: nom = estat httpd = activat activat = sí manipuladors: - nom: reinicieu Apache servei: nom = estat httpd = reiniciat

Espero que l'exemple us relacioni amb totes les descripcions dels components del llibre que he esmentat anteriorment. Si encara no ho teniu clar, no us preocupeu, tots els vostres dubtes quedaran clars a la part posterior d’aquest bloc.

Tot es tracta de llibres de jocs. Els llibres de reproducció que escriuràs. Però Ansible també us proporciona una àmplia gamma de mòduls que podeu utilitzar.

Tutorial Ansible: mòduls

Els mòduls a Ansible són idempotents. Des del punt de vista del servei RESTful, perquè una operació (o una trucada de servei) sigui idempotent, els clients poden fer la mateixa trucada repetidament mentre produeixen el mateix resultat. En altres paraules, fer diverses sol·licituds idèntiques té el mateix efecte que fer una sol·licitud única.

Hi ha diferents tipus de mòduls a Ansible

  • Mòduls bàsics
  • mòduls extres

Mòduls bàsics

Aquests són mòduls que l'equip bàsic d'Ansible manté i que sempre s'enviaran amb Ansible mateix. També rebran una prioritat lleugerament superior per a totes les sol·licituds que les dels repos 'extres'.

La font d'aquests mòduls està allotjada per Ansible a GitHub a Ansible-modules-core.

exemple d'una classe java

Mòduls Extres

Aquests mòduls s’envien actualment amb Ansible, però es poden enviar per separat en el futur. També són principalment mantinguts per la comunitat Ansible. Els mòduls no bàsics encara es poden utilitzar completament, però poden rebre taxes de resposta lleugerament més baixes per a problemes i sol·licituds d'extracció.

Al llarg del temps, els mòduls populars 'extres' es poden promocionar a mòduls bàsics.

Ansible a GitHub allotja la font d’aquests mòduls a Ansible-modules-extras.

Per exemple: el mòdul d’extres dels mòduls de gestió remota és el mòdul ipmi_power, que és un administrador d’alimentació per a les màquines remotes. Requereix python 2.6 o posterior i pyghmi per executar-se.

Podeu utilitzar aquest mòdul escrivint una ordre adhoc com la que he escrit a continuació:

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

Tutorial Ansible: valors de retorn

Els mòduls Ansible normalment retornen una estructura de dades que es pot registrar en una variable o veure-la directament quan el programa Ansible la genera. De manera opcional, cada mòdul pot documentar els seus propis valors de retorn únics.

Alguns exemples de valors de retorn són:

  • canviat: torna amb un valor booleà sempre que la tasca realitza qualsevol canvi.
  • Error: retorna un valor booleà si la tasca falla
  • msg: retorna una cadena amb un missatge genèric transmès a l'usuari.

Tutorial Ansible: ordres AdHoc

Les ordres adhoc són ordres simples d’una línia per realitzar alguna acció. Executar mòduls amb ordres Ansible són ordres adhoc.

Per exemple:

ansible host -m netscaler -a 'nsc_host = nsc.example.com user = apiuser password = apipass' 

L'ordre adhoc anterior utilitza el mòdul netscaler per desactivar el servidor. Hi ha centenars de mòduls disponibles a Ansible des d’on podeu fer referència i escriure ordres adhoc.

Bé, prou amb totes les explicacions teòriques, permeteu-me que us expliqui Ansible amb algunes mans a sobre.

Tutorial Ansible - Hands On

Vaig a escriure un llibre de reproducció per instal·lar Nginx al meu equip de node / amfitrió.

Anem a començar :)

Pas 1: Connecteu-vos als vostres amfitrions mitjançant SSH. Per a això, heu de generar una clau SSH pública.

Utilitzeu l'ordre següent:

ssh-keygen

Generar clau Ssh - Tutorial Ansible - Edureka

Com podeu veure a la instantània anterior, l'ordre ssh-keygen ha generat una clau SSH pública.

anar a l'ordre c ++

Pas 2: La següent tasca és copiar la clau SSH pública als vostres amfitrions. Per fer-ho, utilitzeu l'ordre següent:

ssh-copy-id -i root @

La instantània anterior mostra la clau SSH que es copia als hosts.

Pas 3: Enumereu les adreces IP dels vostres amfitrions / nodes a l'inventari.

Utilitzeu l'ordre següent:

vi / etc / ansible / hosts

Això obrirà un editor de vi on podreu llistar les adreces IP dels vostres amfitrions. Aquest és ara el vostre inventari.

Pas 4: Fem ping per assegurar-nos que s’ha establert una connexió.

La instantània anterior confirma que s'ha establert la connexió entre la màquina de control i l'amfitrió.

Pas 5: Escrivim ara un llibre de reproducció per instal·lar Nginx a la màquina amfitriona. Podeu escriure el vostre llibre de reproducció a l'editor vi. Per a això, simplement creeu el vostre llibre de joc, amb l'ordre:

vi

La instantània següent mostra el meu llibre de joc per instal·lar Nginx escrit en format YAML.

Les tasques d’un llibre de joc es defineixen a YAML com una llista de diccionaris i s’executen de dalt a baix. Si tenim diversos hosts, llavors cada tasca s’intenta per a cada host abans de passar a la següent. Cada tasca es defineix com un diccionari que pot tenir diverses claus, com ara 'nom' o 'sudo' que signifiquen el nom de la tasca i si requereix privilegis sudo.

Una variable port_servidor es defineix que escolta al port TCP 8080 per a sol·licituds entrants.

Aquí, la primera tasca és obtenir el paquet necessari per instal·lar Nginx i després instal·lar-lo.Internament, Ansible comprovarà si el directori existeix i el crearà si no és així, en cas contrari no farà res.

aplicacions d’anàlisi de big data

La següent tasca és configurar Nginx.A Nginx, els contextos contenen detalls de configuració.

Aquí, la plantilla és un fitxer que podeu desplegar als hosts. No obstant això, els fitxers de plantilla també inclouen algunes variables de referència que s’extreuen de variables definides com a part d’un llibre de joc Ansible o fets recopilats dels amfitrions. Els fets que contenen els detalls de la configuració s’extreuen d’un directori font i es copien a un directori de destinació.

Els gestors aquí defineixen l'acció que cal dur a terme només després de la notificació de tasques o canvis d'estat. En aquest llibre de joc, hem definit, notifiquem: reinicieu el controlador Nginx, que reiniciarà Nginx un cop es copiïn els fitxers i les plantilles als hosts.

Ara deseu el fitxer i sortiu.

Pas 6: Ara executem aquest llibre de reproducció mitjançant l'ordre següent:

ansible-playbook .yml

Podem veure a la captura de pantalla anterior que la nostra tasca és executar la instal·lació de Nginx.

Pas 7: Comprovem si Nginx està instal·lat a la màquina amfitrió. Utilitzeu l'ordre següent:

ps waux | grep nginx

Podeu veure a la captura de pantalla anterior que s’executen diferents identificadors de procés 3555 i 103316, cosa que garanteix que Nginx s’executi a les màquines amfitrions.

Enhorabona! Heu desplegat Nginx amb èxit al vostre amfitrió mitjançant llibres de reproducció Ansible. Espero que us hagi agradat llegir aquest bloc de tutorial Ansible. Feu-me saber si teniu cap pregunta a la secció de comentaris que hi ha a continuació.

Si trobeu això ' Tutorial Ansible 'Rellevant, fes un cop d'ull al per Edureka, una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món. El curs de formació sobre certificació Edureka DevOps ajuda els estudiants a adquirir experiència en diversos processos i eines DevOps com Puppet, Jenkins, Ansible, Nagios i Git per automatitzar diversos passos en SDLC.