Ansible Roles - izcils veids, kā atšķetināt jūsu Playbooks

Šajā emuārā Ansible Roles tiek runāts par to, kā lomas tiek izmantotas, lai sarežģītas atskaņošanas grāmatas padarītu lasāmas un atkārtoti izmantojamas, izmantojot MEAN Stack uzstādīšanas demonstrāciju.

Ansible ļauj mums automatizēt sistēmu konfigurācijas pārvaldību un pievienot jebkuru klientu skaitu pēc vēlēšanās. Vai esat kādreiz domājuši, cik sarežģīti tas var kļūt? Vai esat kādreiz aizdomājušies, cik ilgi un mulsinoši var kļūt playbooki? Kā Ansible joprojām padara to par vēju? Tajā tiek izmantots jēdziens Ansible Roles, un par to mēs runāsim šajā emuārā.



Apskatītās tēmas:



Ja vēlaties apgūt DevOps, ' kurss būtu jūsu izvēles iespēja.

Ievads iespējamās lomās

Ansible Role ir jēdziens, kas nodarbojas ar idejām, nevis notikumiem. Tās pamatā ir cits abstrakcijas līmenis, ko izmanto, lai organizētu atskaņošanas grāmatas. Tie nodrošina skeletu neatkarīgai un atkārtoti lietojamu mainīgo, uzdevumu, veidņu, failu un moduļu kolekcijai, ko var automātiski ielādēt atskaņošanas grāmatā. Playbooks ir lomu kolekcija. Katrai lomai ir noteikta funkcionalitāte.



Ļaujiet man to paskaidrot ar piemēru. Pieņemsim, ka vēlaties, lai jūsu spēļu grāmata veiktu 10 dažādus uzdevumus 5 dažādās sistēmās, vai jūs tam izmantotu vienu atskaņošanas grāmatu? Nē, izmantojot vienu grāmatu, tā var kļūt mulsinoša un pakļauta kļūdām. Tā vietā jūs varat izveidot 10 dažādas lomas, kur katra loma veiks vienu uzdevumu. Pēc tam viss, kas jums jādara, ir jāpiemin lomas nosaukums rotaļlietā, lai tās izsauktu. Šajā blogā uzzināsiet, kā tālāk izmantot lomas.

Iespējamās lomu atkārtota izmantošana

Iespējamās lomas ir neatkarīgas viena no otras. Vienas lomas izpilde nav atkarīga no citām, un tāpēc tās var izmantot atkārtoti. Jūs pat varat modificēt un personalizēt šīs lomas atbilstoši savām prasībām. Tas samazina mūsu uzdevumu pārrakstīt visu koda sadaļu katru reizi, kad tas mums nepieciešams, tādējādi vienkāršojot mūsu darbu.

Atgriezīsimies pie iepriekšējā piemēra. Jūs esat uzrakstījis 10 lomas, un tagad jums 5 no tām jāizmanto citam nodrošinājuma komplektam. Vai jūs atkal uzrakstāt visu spēles grāmatu? Nē, jūs vienkārši atkārtoti izmantojat šīs 5 lomas, izsaucot tās šajā jaunajā Playbook. Ja nepieciešams, varat arī veikt izmaiņas, taču tas tomēr ietaupīs daudz laika.



Pieņemsim, ka, lai iestatītu LAMP kaudzīti, jums jāuzraksta spēļu grāmata. Jums ir jāizveido 4 lomas, katra no tām Linux, Apache, MongoDB un PHP izveidei. Ja nākotnē vēlaties citu spēļu grāmatu LAMP kaudzes, kā arī WordPress iestatīšanai, vai jūs atkal izveidosiet jaunas lomas LAMP kaudzei un WordPress? Nē! Varat vienkārši atkārtoti izmantot vecākās lomas (izmantotas LAMP kaudzei) un papildus izveidot jaunu lomu WordPress.

Lomu direktorija struktūra

Izmantojot Ansible Roles, sagaidiet, ka faili atrodas noteiktā failu struktūrā. Visvairāk mulsinošā lomu izmantošanas daļa ir failu hierarhijas izpratne. Ansible nodrošina funkciju ar nosaukumu Ansible Galaxy, kas palīdz jums spēlēt ar lomām. Mēs jau zinām, kur mūsu Ansible atrodas Ubuntu (/ etc / ansible). Vai esat kādreiz redzējuši direktoriju ar nosaukumu lomas sadaļā / etc / ansible? Šis direktorijs pastāv tieši šī iemesla dēļ. Šajā direktorijā jūs izveidojat dažādas lomas.

Katalogs izskatīsies šādi:

Koks - Ansible Roles - Edureka

Lomu var izveidot, izmantojot ansible-galaktika init komandā / etc / ansible / role.

$sudoansible-galaxy init

Jūs redzēsiet, ka būtu izveidoti arī citi lomu direktoriji.

Šie direktoriji ir uzdevumi, apstrādātāji, noklusējumi, vars, faili, veidnes, meta un README.mdfailu.

Uzdevumi - Satur galveno uzdevumu sarakstu, kas jāizpilda lomai. Tāsaturmain.yml fails šai konkrētajai lomai.

Apstrādātāji - Satur apdarinātājus, kurus var izmantot šī loma vai pat jebkur ārpus šīs lomas.

Noklusējumi - satur noklusējuma mainīgos, kurus šī loma izmantos.

Kuru - Šis direktorijs sastāv no citiem mainīgajiem lielumiem, kurus loma izmantos. Šos mainīgos var definēt jūsu spēļu grāmatā, taču ir labs ieradums tos definēt šajā sadaļā.

Faili - satur failus, kurus var izvietot šī loma. Tajā ir faili, kas, konfigurējot lomu, jānosūta saimniekiem.

Meta - definē šīs lomas metadatus. Būtībā tajā ir faili, kas nosaka lomu atkarības.

Katrs uzdevums direktorijā jāsastāv no main.yml fails, kurā ir rakstīts konkrētās lomas faktiskais kods.

java izveidot objektu masīvu

Tagad sapratīsim darbu vai lomas ar demonstrāciju par MEAN Stack instalēšanu.

Demonstrācija: MEAN Stack instalēšana, izmantojot Ansible Roles

Es parādīšu, kā instalēt MEAN Stack, izmantojot Ansible Roles, vienkārši izpildot vienu atsevišķu grāmatu. Mums būs trīs lomas: 1) priekšnoteikumu instalēšana, 2) MongoDB instalēšana un 3) NodeJS instalēšana. Es pieņemu, ka jūs jau esat to izdarījis instalēja Ansible un izveidoja servera un klienta savienojumu Ubuntu . Sāksim spēlēt ar Ansible Roles.

1. solis - Pārejiet uz direktoriju / etc / ansible / role un izveidojiet priekšnoteikumu, MongoDB un NodeJS lomas.

$ cd / etc / ansible / role $ sudo ansible-galaxy init priekšnoteikumi $ sudo ansible-galaxy init mongodb $ sudo ansible-galaxy init nodejs

Tagad jūsu ‘lomu’ direktorijā vajadzētu redzēt trīs lomas.

2. solis - Uzrakstiet main.yml priekšnosacījumiem, kas instalē Git.

$ cd priekšnoteikumi / uzdevumi / main.yml --- - nosaukums: Instalējiet git apt: nosaukums: git stāvoklis: pašreizējais atjaunināšanas_ kešatmiņa: jā

3. solis - Uzrakstiet main.yml par MongoDB lomu

$ cd /mongodb/tasks/main.yml --- - nosaukums: MongoDB - Importēt publisko atslēgu apt_key: keyserver: hkp: //keyserver.ubuntu.com: 80 id: EA312927 - nosaukums: MongoDB - Pievienot krātuvi apt_repository: faila nosaukums: '/etc/apt/sources.list.d/mongodb-org-3.2.list' repo: 'deb http://repo.mongodb.org/apt/ubuntu trusty / mongodb-org / 3.2 multiverse' stāvoklis: pašreizējā update_cache : jā - nosaukums: MongoDB - instalējiet MongoDB apt: nosaukums: mongodb-org stāvoklis: pašreizējā update_cache: jā - nosaukums: Sākt mongoda apvalku: 'mongod &'

4. solis - Uzrakstiet main.yml parnodejslomu

$ cd nodejs / task / main.yml --- - nosaukums: Node.js - Saņemt skriptu get_url: url: 'http://deb.nodesource.com/setup_6.x' dest: '{{var_node}} / nodejs .sh '- nosaukums: Node.js - iestatiet izpildes atļauju skripta failam: ceļš:' {{var_node}} / nodejs.sh 'režīms:' u + x '- nosaukums: Node.js - izpildiet instalācijas skripta apvalku:' {{var_node}} / nodejs.sh '- nosaukums: Node.js - Noņemt instalācijas skripta failu: ceļš:' {{var_node}} / nodejs.sh 'stāvoklis: nav - nosaukums: Node.js - instalējiet Node.js apt : name = {{item}} state = present update_cache = yes with_items: - build-essential - nodejs - name: Node.js - Install bower and gulp globally npm: name = {{item}} state = present global = yes with_items : - bower - gulp

5. solis - Uzrakstiet savu galveno grāmatu

$ cd /etc/ansible/mean.yml --- - saimnieki: mezgli remote_user: ansible kļūt: jā kļūt_metode: sudo vars: #variable nepieciešams mezgla instalēšanas laikā var_node: / tmp lomas: - priekšnoteikumi - mongodb - nodejs

Tagad, kad esam definējuši priekšnoteikumu instalēšanas lomas, MongoDB un NodeJs, izvietosim tos. Izpildiet atskaņošanas grāmatu, izmantojot šādu komandu.

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

Kā redzat, visi uzdevumi ir izpildīti, un to statuss ir mainījies. Tas nozīmē, ka atskaņošanas grāmatas izmaiņas ir piemērotas jūsu serverim, kā arī resursdatoram. MEAN Stack iestatīšana ir tikai viens piemērs. Izmantojot Ansible Roles, var iestatīt burtiski visu un visu.

Tas mūs noved pie Ansible Roles emuāra beigām. Ja jums šķiet, ka šis raksts ir noderīgs, skatiet vietni ' piedāvā Edureka. Tas aptver visus rīkus, kas ir uzlabojuši IT nozari.

Vai mums ir jautājums? Lūdzu, ievietojiet to vietnē un mēs sazināsimies ar jums.