Roluri Ansible - Mod final pentru a vă descurca Playbook-urile



Acest blog Ansible Roles vorbește despre modul în care rolurile sunt folosite pentru a face cărțile de joc complexe citibile și reutilizabile, cu o demonstrație a înființării unui MEAN Stack.

Ansible ne permite să automatizăm gestionarea configurației sistemelor și să adăugăm orice număr de clienți dorim. V-ați întrebat vreodată cât de complex poate deveni acest lucru? V-ați întrebat vreodată cât de mult și confuz pot ajunge cărțile de joc? Cum face Ansible încă să pară o briză? Folosește conceptul de roluri Ansible și despre asta vom vorbi în acest blog.

Subiecte acoperite:





Dacă doriți să stăpâniți DevOps, ' Desigur, ar fi opțiunea dvs. preferată.

Introducere în rolurile Ansible

Rolul Ansible este un concept care se ocupă mai degrabă de idei decât de evenimente. Este practic un alt nivel de abstractizare folosit pentru a organiza cărțile de joc. Acestea oferă un schelet pentru o colecție independentă și reutilizabilă de variabile, sarcini, șabloane, fișiere și module care pot fi încărcate automat în playbook. Playbook-urile sunt o colecție de roluri. Fiecare rol are funcționalități specifice.



Permiteți-mi să explic acest lucru cu un exemplu. Să presupunem că doriți ca playbook-ul dvs. să efectueze 10 sarcini diferite pe 5 sisteme diferite, ați folosi un singur playbook pentru aceasta? Nu, utilizarea unui singur playbook îl poate face confuz și predispus la gafe. În schimb, puteți crea 10 roluri diferite, în care fiecare rol va îndeplini o sarcină. Apoi, tot ce trebuie să faceți este să menționați numele rolului din manual pentru a le apela. Veți afla cum să folosiți rolurile în continuare pe acest blog.

Reutilizarea rolurilor Ansible

Rolurile Ansible sunt independente unele de altele. Executarea unui rol nu depinde de altele și, prin urmare, acestea pot fi refolosite. Puteți chiar modifica și personaliza aceste roluri în funcție de cerințele dvs. Acest lucru ne reduce sarcina de a rescrie o întreagă secțiune de cod de fiecare dată când avem nevoie, simplificându-ne astfel munca.

Să ne întoarcem la exemplul anterior. Ați scris 10 roluri și acum trebuie să le utilizați 5 pentru un alt set de provizionare. Scrii din nou întregul playbook? Nu, doar reutilizați cele 5 roluri apelându-le în acest nou Playbook. De asemenea, puteți face modificări, dacă este necesar, dar ar sfârși prin a vă economisi mult timp.



Să presupunem că trebuie să scrieți un manual pentru configurarea stivei LAMP. Trebuie să creați 4 roluri, fiecare pentru crearea Linux, Apache, MongoDB și PHP. În viitor, dacă doriți un alt manual pentru configurarea stivei LAMP, precum și WordPress, veți crea din nou roluri pentru stiva LAMP și WordPress? Nu! Puteți pur și simplu să reutilizați rolurile mai vechi (utilizate pentru stiva LAMP) și să creați suplimentar un rol nou pentru WordPress.

implementarea listei legate în c

Structura directorului de roluri

Folosind Ansible Roles, așteptați ca fișierele să se afle într-o anumită structură de fișiere. Cea mai confuză parte a utilizării rolurilor este înțelegerea ierarhiei fișierelor. Ansible oferă o caracteristică numită Ansible Galaxy care vă ajută să jucați cu roluri. Știm deja unde se află Ansible pe Ubuntu (/ etc / ansible). Ați văzut vreodată un director numit roluri sub / etc / ansible? Acest director există exact din acest motiv. Creați roluri diferite în acest director.

Directorul va arăta astfel:

Arborele - Roluri Ansible - Edureka

Puteți crea un rol folosind ansible-galaxy comanda init in / etc / ansible / roles.

$sudoansible-galaxy init

Veți vedea că ar fi fost create și alte directoare de roluri.

Aceste directoare sunt sarcini, gestionare, setări implicite, variabile, fișiere, șabloane și meta și un README.mdfişier.

cum se utilizează metoda split în java

Sarcini - Conține lista principală a sarcinilor care urmează să fie executate de rol. Aceastaconținefișierul main.yml pentru rolul respectiv.

Manipulatori - Conține gestionare care pot fi utilizate de acest rol sau chiar oriunde în afara acestui rol.

Valori implicite - Conține variabilele implicite care vor fi utilizate de acest rol.

A caror - Acest director constă din alte variabile care vor fi utilizate de rol. Aceste variabile pot fi definite în manualul dvs. de joc, dar este un obicei bun să le definiți în această secțiune.

Dosare - Conține fișiere care pot fi implementate de acest rol. Conține fișiere care trebuie trimise gazdelor în timpul configurării rolului.

Meta - Definește metadatele pentru acest rol. Practic, conține fișiere care stabilesc dependențe de rol.

Fiecare sarcină directorul trebuie să fie format dintr-un main.yml fișier în care este scris codul efectiv pentru rolul respectiv.

Să înțelegem acum funcționarea sau rolurile cu o demonstrație de instalare MEAN Stack.

Demo: Instalarea MEAN Stack folosind rolurile Ansible

Voi demonstra cum să instalez MEAN Stack folosind rolurile Ansible, executând doar un singur playbook. Vom avea trei roluri: 1) Instalarea premiselor, 2) Instalarea MongoDB și 3) Instalarea NodeJS. Presupun că deja ai făcut-o a instalat Ansible și a făcut o conexiune server-client pe Ubuntu . Să începem să ne jucăm cu Ansible Roles.

Pasul 1 - Navigați la directorul / etc / ansible / roles și creați rolurile pentru premise, MongoDB și NodeJS.

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

Acum ar trebui să vedeți trei roluri în directorul „roluri”.

Pasul 2 - Scrieți main.yml pentru premisele care instalează Git.

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

Pasul 3 - Scrieți main.yml pentru rolul MongoDB

$ cd /mongodb/tasks/main.yml --- - nume: MongoDB - Import cheie publică apt_key: keyserver: hkp: //keyserver.ubuntu.com: 80 id: EA312927 - nume: MongoDB - Adăugare depozit apt_repository: nume de fișier: '/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: prezent update_cache : da - nume: MongoDB - Instalați MongoDB apt: nume: mongodb-org stare: prezent update_cache: da - nume: Porniți mongod shell: 'mongod &'

Pasul 4 - Scrieți main.yml pentrunodejsrol

$ cd nodejs / tasks / main.yml --- - nume: Node.js - Obțineți scriptul get_url: url: 'http://deb.nodesource.com/setup_6.x' dest: '{{var_node}} / nodejs .sh '- nume: Node.js - Setați permisiunea de execuție pentru fișierul script: cale: modul {{var_node}} / nodejs.sh': 'u + x' - nume: Node.js - Executați shell-ul scriptului de instalare: ' {{var_node}} / nodejs.sh '- nume: Node.js - Eliminați fișierul scriptului de instalare: cale: „{{var_node}} / nodejs.sh” stare: absent - nume: Node.js - Instalați Node.js apt : nume = {{item}} stare = prezent update_cache = yes with_items: - build-essential - nodejs - name: Node.js - Instalați bower și gulp global npm: name = {{item}} state = present global = yes with_items : - bower - gulp

Pasul 5 - Scrieți cartea de joc principală

$ cd /etc/ansible/mean.yml --- - hosts: noduri remote_user: ansible devenit: da devenit_method: sudo vars: #variabilă necesară în timpul instalării nodului var_node: / tmp roluri: - condiții prealabile - mongodb - nodejs

Acum că am definit roluri pentru instalarea premiselor, MongoDB și NodeJs, să le implementăm. Executați playbook-ul folosind următoarea comandă.

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

După cum puteți vedea, toate sarcinile au fost executate și starea lor sa schimbat. Aceasta înseamnă că modificările din playbook au fost aplicate atât pe serverul dvs., cât și pe gazdă. Configurarea MEAN Stack este doar un exemplu. Puteți configura literalmente orice și orice folosind Ansible Roles.

Acest lucru ne aduce la sfârșitul blogului Ansible Roles. Dacă vi se pare util acest articol, consultați ' oferit de Edureka. Acoperă toate instrumentele care au făcut industria IT mai bună.

java convertește binar în zecimal

Ai o întrebare pentru noi? Vă rugăm să o postați pe și ne vom întoarce la tine.