Rols Ansible: la forma definitiva de desencallar els teus Playbooks



Aquest bloc Ansible Roles parla de com s’utilitzen els rols per fer que els llibres de joc complexos siguin llegibles i reutilitzables amb la demostració de la configuració d’una pila MEAN.

Ansible ens permet automatitzar la gestió de configuracions de sistemes i afegir qualsevol nombre de clients com desitgem. Us heu preguntat mai fins a quin punt pot resultar complex? Us heu preguntat mai quant de temps i confusió poden arribar els llibres de joc? Com fa Ansible encara que sembli una brisa? Utilitza el concepte de rols Ansible i d’això parlarem en aquest bloc.

Temes tractats:





Si voleu dominar DevOps, ' per descomptat, seria la vostra opció preferida.

Introducció als rols Ansible

El paper Ansible és un concepte que tracta d’idees més que d’esdeveniments. És bàsicament un altre nivell d’abstracció que s’utilitza per organitzar llibres de jocs. Proporcionen un esquelet per a una col·lecció independent i reutilitzable de variables, tasques, plantilles, fitxers i mòduls que es poden carregar automàticament al llibre de reproducció. Els llibres de jocs són una col·lecció de rols. Tots els rols tenen una funcionalitat específica.



Deixeu-me explicar-ho amb un exemple. Suposem que voleu que el vostre llibre de joc realitzi 10 tasques diferents en 5 sistemes diferents, faríeu servir un llibre de reproducció únic per a això? No, l’ús d’un únic llibre de reproducció pot fer que sigui confús i propens a les errades. En lloc d’això, podeu crear deu rols diferents, on cada rol realitzi una tasca. A continuació, tot el que heu de fer és esmentar el nom del rol dins del llibre de joc per trucar-los. Aprendreu a fer servir els rols en aquest bloc.

Reutilització dels rols Ansible

Els rols Ansible són independents els uns dels altres. L’execució d’un rol no depèn d’altres i, per tant, es poden reutilitzar. Fins i tot podeu modificar i personalitzar aquestes funcions segons els vostres requisits. Això redueix la nostra tasca de reescriure tota una secció de codi cada vegada que ho necessitem, simplificant així la nostra feina.

Tornem a l’exemple anterior. Heu escrit 10 rols i ara n'heu d'utilitzar 5 per a un altre conjunt de subministraments. Torneu a escriure tot el llibre de reproducció? No, només has de reutilitzar aquests cinc rols trucant-los a aquest nou Playbook. També podeu fer modificacions si cal, però encara us acabaria estalviant molt del vostre temps.



Suposem que heu d’escriure un llibre de reproducció per configurar la pila LAMP. Heu de crear 4 rols, cadascun per crear Linux, Apache, MongoDB i PHP. En el futur, si voleu un altre llibre de jocs per configurar la pila LAMP, així com WordPress, tornareu a crear nous rols per a la pila LAMP i WordPress? No! Simplement podeu tornar a utilitzar els rols anteriors (que s’utilitzen per a la pila LAMP) i, a més, crear un nou rol per a WordPress.

java com sortir d'un programa

Estructura del directori de rols

Amb els rols Ansible, espereu que els fitxers es trobin en una estructura de fitxers determinada. La part més confusa de l’ús de rols és entendre la jerarquia de fitxers. Ansible proporciona una funció anomenada Ansible Galaxy que us ajuda a jugar amb els rols. Ja sabem on es troba el nostre Ansible a Ubuntu (/ etc / ansible). Heu vist mai un directori anomenat papers a / etc / ansible? Aquest directori existeix exactament per aquest motiu. Creeu diferents rols dins d’aquest directori.

El directori tindrà aquest aspecte:

Tree - Rols Ansible - Edureka

Podeu crear un rol mitjançant ansible-galaxy comanda init dins de / etc / ansible / roles.

$suoansible-galaxy init

Veureu que també s’haurien creat altres directoris de funcions.

Aquests directoris són tasques, gestors, valors predeterminats, vars, fitxers, plantilles i meta i un README.mddossier.

com convertir el doble en int

Tasques - Conté la llista principal de tasques que el rol ha d'executar. Aixòcontéel fitxer main.yml per a aquesta funció en particular.

Manipuladors - Conté gestors que poden ser utilitzats per aquesta funció o fins i tot en qualsevol lloc fora d'aquesta funció.

Valors predeterminats - Conté les variables per defecte que utilitzaran aquest rol.

De qui - Aquest directori consta d'altres variables que el rol utilitzarà. Aquestes variables es poden definir al vostre llibre de jocs, però és un bon costum definir-les en aquesta secció.

Fitxers - Conté fitxers que es poden desplegar mitjançant aquesta funció. Conté fitxers que cal enviar als hosts mentre es configura el rol.

Meta - Defineix metadades per a aquest rol. Bàsicament, conté fitxers que estableixen dependències de funcions.

Cada tasca el directori ha de consistir en un main.yml fitxer on s’escriu el codi real d’aquest rol en particular.

Ara comprenem el funcionament o els rols amb una demostració d’instal·lació de MEAN Stack.

Demostració: instal·lació de MEAN Stack mitjançant rols Ansible

Demostraré com instal·lar MEAN Stack mitjançant funcions Ansible amb només executar un llibre de reproducció. Tindrem tres funcions: 1) Instal·lar requisits previs, 2) Instal·lar MongoDB i 3) Instal·lar NodeJS. Suposo que ja ho heu fet va instal·lar Ansible i va establir una connexió servidor-client a Ubuntu . Comencem a jugar amb Ansible Roles.

Pas 1 - Aneu al directori / etc / ansible / roles i creeu els rols per als requisits previs, MongoDB i NodeJS.

$ cd / etc / ansible / roles $ sudo ansible-galaxy init requisits previs $ sudo ansible-galaxy init mongodb $ sudo ansible-galaxy init nodejs

Ara hauríeu de veure tres rols al directori 'rols'.

Pas 2 - Escriviu main.yml per als requisits previs que instal·la Git.

$ cd prerequisites / tasks / main.yml --- - name: Install git apt: name: git state: present update_cache: yes

Pas 3 - Escriviu main.yml per al paper MongoDB

$ cd /mongodb/tasks/main.yml --- - name: MongoDB - Importa la clau pública apt_key: keyserver: hkp: //keyserver.ubuntu.com: 80 id: EA312927 - name: MongoDB - Afegeix un repositori apt_repository: nom del fitxer: '/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 : yes - name: MongoDB - Instal·la MongoDB apt: name: mongodb-org state: present update_cache: yes - name: Inicia la shell mongod: 'mongod &'

Pas 4 - Escriviu main.yml pernodejspaper

$ cd nodejs / tasks / main.yml --- - name: Node.js - Obteniu script get_url: url: 'http://deb.nodesource.com/setup_6.x' dest: '{{var_node}} / nodejs .sh '- nom: Node.js - Configureu el permís d'execució del fitxer de script: ruta: mode {{var_node}} / nodejs.sh': 'u + x' - nom: Node.js - Executeu el shell de script d'instal·lació: ' {{var_node}} / nodejs.sh '- nom: Node.js - Elimina el fitxer de seqüència d'instal·lació: ruta:' {{var_node}} / nodejs.sh 'estat: absent - nom: Node.js - Instal·la Node.js apt : name = {{item}} state = present update_cache = yes with_items: - build-essential - nodejs - name: Node.js - Instal·leu bower and gulp globalment npm: name = {{item}} state = present global = yes with_items : - Bower - glop

Pas 5 - Escriviu el vostre llibre de joc principal

$ cd /etc/ansible/mean.yml --- - hosts: nodes usuari_remot: ansible esdevenir: sí esdevenir_metode: sudo vars: #variable necessària durant la instal·lació del node var_node: / tmp rols: - requisits previs - mongodb - nodejs

Ara que hem definit els rols per instal·lar els requisits previs, MongoDB i NodeJs, implementem-los. Executeu el llibre de reproducció amb l'ordre següent.

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

Com podeu veure, totes les tasques s’han executat i el seu estat ha canviat. Això vol dir que els canvis del llibre de reproducció s’han aplicat al vostre servidor i a l’amfitrió. Configurar MEAN Stack és només un exemple. Podeu configurar literalment qualsevol cosa i tot fent servir funcions Ansible.

Això ens porta al final del bloc Ansible Roles. Si trobeu útil aquest article, consulteu el ' ofert per Edureka. Cobreix totes les eines que han millorat la indústria de TI.

system.exit (0)

Tens alguna pregunta? Envieu-lo a i ens posarem en contacte amb vosaltres.