Odgovorljive uloge - krajnji način za raspetljavanje vaših knjiga knjiga

Ovaj blog Ansible Roles govori o tome kako se uloge koriste kako bi složene knjige knjiga bile čitljive i ponovno upotrebljive uz demonstaciju postavljanja MEAN Stacka.

Ansible nam omogućuje automatizaciju upravljanja konfiguracijom sustava i dodavanje bilo kojeg broja klijenata po želji. Jeste li se ikad zapitali koliko ovo može postati složeno? Jeste li se ikad zapitali koliko mogu trajati i zbunjujuće knjige pjesama? Kako Ansible još uvijek čini da se čini povjetarcem? Koristi koncept odgovornih uloga i o tome ćemo razgovarati na ovom blogu.

Tema završena:





Ako želite svladati DevOps, ' tečaj bi bio vaša opcija za pristup.

Uvod u odgovorne uloge

Ansible Role koncept je koji se bavi idejama, a ne događajima. Njegova je u osnovi još jedna razina apstrakcije koja se koristi za organiziranje knjiga s igrama. Oni pružaju kostur za neovisnu zbirku varijabli, zadataka, predložaka, datoteka i modula koji se mogu ponovno koristiti i koji se mogu automatski učitati u knjigu priručnika. Playbooks su skup uloga. Svaka uloga ima specifičnu funkcionalnost.



Dopustite mi da to objasnim na primjeru. Pretpostavimo da želite da vaša knjiga igara izvršava 10 različitih zadataka na 5 različitih sustava, biste li za to koristili jednu knjigu za igru? Ne, upotreba jedne knjige za igru ​​može je zbuniti i sklon je greškama. Umjesto toga, možete stvoriti 10 različitih uloga, pri čemu će svaka uloga izvršiti jedan zadatak. Zatim, sve što trebate učiniti je spomenuti ime uloge u priručniku da biste ih nazvali. Na ovom ćete blogu dalje naučiti kako se koristiti ulogama.

Ponovna upotrebljivost odgovornih uloga

Odgovorljive uloge neovisne su jedna o drugoj. Izvršenje jedne uloge ne ovisi o drugima i stoga ih se može ponovno koristiti. Možete čak modificirati i prilagoditi ove uloge prema svojim zahtjevima. To smanjuje naš zadatak da prepišemo cijeli odjeljak koda svaki put kad nam zatreba, što pojednostavljuje naš rad.

Vratimo se prethodnom primjeru. Napisali ste 10 uloga i sada ih trebate iskoristiti za još jedan set pripreme. Pišete li ponovno čitavu knjigu pjesama? Ne, samo ponovno upotrijebite tih 5 uloga pozivajući ih u ovu novu Playbook. Po potrebi možete izvršiti i izmjene, ali to bi vam na kraju uštedjelo puno vremena.



Recimo da trebate napisati knjigu za postavljanje LAMP stoga. Morate stvoriti 4 uloge, svaku za stvaranje Linuxa, Apachea, MongoDB-a i PHP-a. Ako u budućnosti želite još jednu knjigu priručnika za postavljanje LAMP stoga, kao i WordPressa, hoćete li ponovno stvoriti nove uloge za LAMP stog i WordPress? Ne! Možete jednostavno ponovno koristiti starije uloge (koriste se za LAMP stog) i dodatno stvoriti novu ulogu za WordPress.

Struktura direktorija uloga

Koristeći odgovorne uloge, očekujte da će datoteke biti u određenoj strukturi datoteka. Zbunjujući dio korištenja uloga je razumijevanje hijerarhije datoteka. Ansible nudi značajku nazvanu Ansible Galaxy koja vam pomaže u igranju s ulogama. Već znamo gdje je naš Ansible na Ubuntuu (/ etc / ansible). Jeste li ikada vidjeli direktorij zvan role pod / etc / ansible? Taj direktorij postoji upravo iz tog razloga. U ovom direktoriju stvarate različite uloge.

što je programer blokova

Direktorij će izgledati ovako:

Stablo - odgovorne uloge - Edureka

Možete stvoriti ulogu pomoću ansible-galaksija naredba init unutar / etc / ansible / role.

$sudoansible-galaksija init

Vidjet ćete da bi se stvorili i drugi direktoriji uloga.

Ti su direktoriji zadaci, rukovatelji, zadane vrijednosti, varovi, datoteke, predlošci i meta i README.doktor medicinedatoteka.

Zadaci - Sadrži glavni popis zadataka koje treba izvršiti uloga. Tosadržidatoteku main.yml za tu određenu ulogu.

Rukovatelji - Sadrži rukovatelje koje može koristiti ova uloga ili čak bilo gdje izvan te uloge.

Zadane postavke - Sadrži zadane varijable koje će se koristiti u ovoj ulozi.

Čija - Ovaj se direktorij sastoji od ostalih varijabli koje će uloga koristiti. Te se varijable mogu definirati u vašoj knjizi igara, ali dobra je navika definirati ih u ovom odjeljku.

Datoteke - Sadrži datoteke koje se ova uloga može rasporediti. Sadrži datoteke koje je potrebno poslati domaćinima tijekom konfiguriranja uloge.

kako pretvoriti broj u binarni u pythonu

Meta - Definira metapodatke za ovu ulogu. U osnovi sadrži datoteke koje uspostavljaju ovisnosti o ulogama.

Svaki zadatak direktorij se mora sastojati od a glavni.iml datoteka u kojoj je napisan stvarni kod za tu određenu ulogu.

Shvatimo sada rad ili uloge s demonstracijom instaliranja MEAN Stacka.

Demonstracija: Instaliranje MEAN Stacka pomoću odgovornih uloga

Pokazat ću kako instalirati MEAN Stack pomoću odgovornih uloga samo izvršavanjem jedne knjige. Imat ćemo tri uloge: 1) Instaliranje preduvjeta, 2) Instaliranje MongoDB-a i 3) Instaliranje NodeJS-a. Pretpostavljam da već jeste instalirao Ansible i uspostavio vezu poslužitelj-klijent na Ubuntuu . Počnimo se igrati s odgovornim ulogama.

Korak 1 - Idite do direktorija / etc / ansible / role i stvorite uloge za preduvjete, MongoDB i NodeJS.

$ cd / etc / ansible / role $ sudo ansible-galaxy init preduvjeti $ sudo ansible-galaxy init mongodb $ sudo ansible-galaxy init nodejs

Sada biste trebali vidjeti tri uloge u direktoriju 'uloge'.

Korak 2 - Napišite main.yml za preduvjete koji instaliraju Git.

java pretvaranje dvostrukog u int
$ cd preduvjeti / zadaci / main.yml --- - name: Instalirajte git apt: name: git state: present update_cache: yes

3. korak - Napišite main.yml za MongoDB ulogu

$ cd /mongodb/tasks/main.yml --- - name: MongoDB - Uvezi javni ključ apt_key: poslužitelj ključeva: hkp: //keyserver.ubuntu.com: 80 id: EA312927 - name: MongoDB - Dodaj spremište apt_repository: ime datoteke: '/etc/apt/sources.list.d/mongodb-org-3.2.list' repo: 'deb http://repo.mongodb.org/apt/ubuntu trusty / mongodb-org / 3.2 multiverse' stanje: trenutno update_cache : yes - name: MongoDB - Instaliraj MongoDB apt: name: mongodb-org state: present update_cache: yes - name: Pokreni mongod ljusku: 'mongod &'

4. korak - Napišite main.yml zanodejsuloga

$ cd nodejs / tasks / main.yml --- - name: Node.js - Preuzmi skriptu get_url: url: 'http://deb.nodesource.com/setup_6.x' dest: '{{var_node}} / nodejs .sh '- name: Node.js - Postavite dopuštenje za izvršavanje datoteke skripte: path:' {{var_node}} / nodejs.sh 'mode:' u + x '- name: Node.js - Izvršite ljusku skripte instalacije:' {{var_node}} / nodejs.sh '- naziv: Node.js - Uklonite datoteku instalacijske skripte: put:' {{var_node}} / nodejs.sh 'stanje: odsutno - ime: Node.js - Instalirajte Node.js apt : name = {{item}} state = present update_cache = yes with_items: - build-bitno - nodejs - name: Node.js - Instalirajte bower i gutljaj globalno npm: name = {{item}} state = present global = yes with_items : - bower - gutljaj

Korak 5 - Napišite svoju glavnu knjigu igara

$ cd /etc/ansible/mean.yml --- - domaćini: čvorovi remote_user: ansible postati: da become_method: sudo vars: #promjenjiva potrebna tijekom instalacije čvora var_node: / tmp uloge: - preduvjeti - mongodb - nodejs

Sad kad smo definirali uloge za instaliranje preduvjeta, MongoDB i NodeJs, rasporedimo ih. Izvršite knjigu za reprodukciju pomoću sljedeće naredbe.

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

Kao što vidite, svi su zadaci izvršeni i njihov se status promijenio. To znači da su promjene playbooka primijenjene na vaš poslužitelj, kao i na domaćina. Postavljanje MEAN Stacka samo je jedan primjer. Pomoću Ansible Roles možete postaviti doslovno sve i svašta.

Ovo nas dovodi do kraja bloga Ansible Roles. Ako vam je ovaj članak koristan, pogledajte članak ' nudi Edureka. Obuhvaća sve alate koji su IT industriju učinili boljom.

Imate pitanje za nas? Molimo objavite na i javit ćemo vam se.