Kā izmantot leļļu moduļus IT infrastruktūras automatizācijai?



Praktiska leļļu apmācība, kas runā par leļļu moduļa rakstīšanu un manifesta izmantošanu organizācijas IT infrastruktūras automatizēšanai un uzturēšanai.

Iepriekš sistēmu administratori izmantoja čaulas skriptus, lai palaistu savus serverus, un šai metodei nebija nulles mērogojamības. Tas ir biedējošs uzdevums pastāvīgi modificēt skriptus simtiem vai tūkstošiem nepārtraukti mainīgu serveru un to sistēmas konfigurācijas.

Šajā rakstā par leļļu moduļi un manifesti redzēsim, kā mēs varētu izmantot leļļu moduļus servera iestatīšanas, programmas instalēšanas un sistēmas pārvaldības automatizēšanai.





Šajā emuārā tiks aplūkotas šādas tēmas:

Ievads leļļu programmēšanā

Leļļu ir viens no populāri izmantotajiem DevOps rīkiem, ko plaši izmanto konfigurācijas pārvaldībai. To izmanto, lai panāktu konsekvence infrastruktūrā. Lelle var definēt infrastruktūru kā kodu, pārvaldīt vairākus serverus un ieviest sistēmas konfigurāciju, tādējādi palīdzot automatizēt infrastruktūras pārvaldības procesu.



Leļļu irsava konfigurācijas valoda, Leļļu DSL . Tāpat kā ar citām DevOps programmām, arī Puppet automatizē izmaiņas, novēršot manuālas skriptu vadītas izmaiņas. Tomēr Leļļu valoda nav vienkārši cita čaulas valoda, un tā nav arī tīra programmēšanas valoda, piemēram, PHP. Tā vietā Puppet izmantouz deklaratīvā uz modeli balstītā pieeja IT automatizācijai. Tas ļauj Puppet definēt infrastruktūru kā kodu un ieviest sistēmas konfigurāciju ar programmām.

Pirms sākat demonstrāciju, apskatīsim dažus leļļu programmēšanas galvenos aspektus.

vienkārša hashmap ieviešana java

Galvenie termini leļļu programmēšanā

Manifesti

Tiek izsaukta leļļu programma manifests un faila nosaukums ir ar .pp pagarinājums. Leļļu noklusējuma galvenais manifests ir /etc/puppet/manifests/site.pp . (Tas nosakaglobālās sistēmas konfigurācijas, piemēram, LDAP konfigurācija, DNS serveri vai citas konfigurācijas, kas attiecas uz katru mezglu).



Klases

Šajos manifestos tiek saukti kodu bloki klases citi moduļi var piezvanīt. Nodarbībās tiek konfigurēti lieli vai vidēji lieli funkcionalitātes gabali, piemēram, visas pakotnes, konfigurācijas faili un pakalpojumi, kas nepieciešami lietojumprogrammas darbināšanai. Nodarbības atvieglo Leļļu koda atkārtotu izmantošanu un uzlabo lasāmību.

Resursi

Leļļu kods galvenokārt sastāv no resursu deklarācijām. A resurss apraksta konkrētu elementu par sistēmas vēlamo stāvokli. Piemēram, tas var ietvert to, ka vajadzētu pastāvēt noteiktam failam vai instalēt pakotni.

Leļļu moduļi

Izņemot galvenosite.ppmanifests,tas uzglabā manifestusiekšā moduļi .

Viss mūsu leļļu kods ir sakārtots moduļos, kas ir leļļu pamatelementi, kurus mēs varam atkārtoti izmantot un koplietot. Katrs modulis pārvalda noteiktu uzdevumu infrastruktūrā, piemēram, programmatūras instalēšanu un konfigurēšanu.

Moduļi satur leļļu klases, definētus veidus, uzdevumus, uzdevumu plānus, ietilpību, resursu tipus un spraudņus, piemēram, pielāgotus veidus vai faktus. Instalējiet moduļus Puppetmodulis-ceļš. Lelle ielādē visu saturu no katra moduļa ceļa moduļa, padarot šo kodu pieejamu.

Moduļi - Leļļu programmēšana - EdurekaPuppetlabs ir iepriekš definēti moduļi, kurus mēs varam uzreiz izmantot, lejupielādējot tos no LeļļuForge . Jūs varētu arī izveidot pielāgotu leļļu moduli, kas atbilstu jūsu prasībām.

Leļļu programmas darbplūsma

Lai aprakstītu vēlamo sistēmas stāvokli failos, kurus sauc par manifestiem, mēs izmantosim Leļļu deklaratīvo valodu. Manifestos aprakstīts, kā jākonfigurē tīkla un operētājsistēmas resursi, piemēram, faili, paketes un pakalpojumi.

Leļļu kompilācijas izpaužas kā katalogi un tas katru katalogu attiecina uz atbilstošo mezglu, lai nodrošinātu t konfigurācijuviņš mezgls ir pareizsvisā jūsu infrastruktūrā.

Demonstrācija: Apache un MySQL instalēšanas automatizēšana

Šis raksts par leļļu moduļiem ir praktisks, kas parādīs divus leļļu moduļa izmantošanas veidus un arī iemācīs, kā to izdarīt automatizēt servera instalēšana, kas konfigurēts ar šiem diviem moduļiem.

Vispirms pārliecinieties, ka jums ir gatava izveidota leļļu infrastruktūra, kas ietver leļļu galvenā serveri un 2 leļļu aģentus.

  • Leļļu meistars: Ubuntu 18.04
  • 1. aģents: Ubuntu 18.04
  • 2. aģents:CentOS7

Šeit ir izklāstīts, ko mēs panāksim šajā praktiskajā darbā:


Tātad sāksim ar praktisko:

Moduļa izveide no nulles

Šajā leļļu modulī mēs nodarbosimies ar tādiem uzdevumiem kā Apache pakotnes lejupielāde, failu konfigurēšana un virtuālo resursdatoru iestatīšana.

  • No Puppet Master dodieties uz Puppet moduļu direktoriju un izveidojiet direktoriju Apache:
    cd / etc / marionete / moduļi sudo mkdir apache
  • Apache direktorijā izveidojiet apakšdirektorijus: manifestus, veidnes, failus un piemērus.
    cd apache sudo mkdir {manifesti, veidnes, faili, piemēri}
  • Pārejiet uz manifestu direktoriju:
    CD izpaužas
  • No šī brīža mēs sadalīsim moduli klasēs, pamatojoties uz šīs koda sadaļas mērķiem.

init.pp -> lai lejupielādētu Apache pakotni

params.pp -> definēt mainīgos un parametrus

config.pp -> lai pārvaldītu visus Apache pakalpojuma konfigurācijas failus.

vhosts.pp -> lai definētu virtuālos resursdatorus.

Šis modulis arī izmantos Hiera (iebūvēta atslēgas vērtības konfigurācijas datu uzmeklēšanas sistēma, ko izmanto datu atdalīšanai no Leļļu koda) datiem, lai mainītu mainīgos katram mezglam.

1. darbība: Apache pakotnes lejupielāde

Izveidojiet klasi init.pp

Tagad mēs izveidosiminit.ppfailu manifestu direktorijā, lai turētu apache pakotni.
Tā kā mums ir 2 dažādas OS (ubuntu un CentOS7), kas Apache izmanto dažādus pakotņu nosaukumus, mums būs jāizmanto mainīgais$ apachename.

/etc/puppetlabs/code/environments/production/modules/apache/manifests/init.pp

klases apache {pakete {'apache': name => $ apachename, nodrošināt => klāt,}}

iepakojums resurss ļauj pārvaldīt paketi. To izmanto, lai pievienotu, noņemtu vai pārliecinātos, ka ir pakete.

Vairumā gadījumu nosaukums resursa (apache, iepriekš) jābūt pārvaldāmās paketes nosaukumam. Dažādu nosaukumdatu dēļmēs saucam faktisko iepakojuma nosaukumukad ar nosaukums atsauce. Tātad nosaukums , prasa vēl nedefinētu mainīgo$ apachename.

nodrošināt atsauce nodrošina, ka pakete irklāt.

Izveidojiet failu params.pp

Theparams.ppfails definēs nepieciešamos mainīgos. Lai gan mēs varētu definēt šos mainīgosinit.ppfailu, jo vairāk mainīgo būs jāizmanto ārpus paša resursa veida, izmantojot aparams.ppfails ļauj definēt mainīgosjapaziņojumus un izmanto vairākās klasēs.

Izveidojiet aparams.ppfailu un šādu kodu.

/etc/puppetlabs/code/environments/production/modules/apache/manifests/params.pp

class apache :: params {if $ :: osfamily == 'RedHat' {$ apachename = 'httpd'} elsif $ :: osfamily == 'Debian' {$ apachename = 'apache2'} else {neizdodas ('tas nav atbalstīts izplatītājs. ')}}

Ārpus oriģināla init.ppklasei, katras klases nosaukumam ir jāatšķiras noapache. Mēs šo klasi saucam kā apache :: params . Vārdam pēc dubultās kolas jābūt kopīgotam nosaukumam ar failu. Anjapaziņojums tiek izmantots, lai definētu parametrus, izmantojot informāciju, ko sniedz Faktors , Leļļu uzstādīšana ir sarežģītāka. Šeit Facter nojauks operētājsistēmu saimi (osfamily), lai saprastu, vai tā irsarkana cepurevaiDebian bāzes.

Kad parametri ir galīgi definēti, mums jāizsauc params.pp failu un parametrusinit.pp. Lai to izdarītu, mums jāpievieno parametri pēc klases nosaukuma, bet pirms sākuma cirtainās iekavas({).

kasandras kolonnu saime vs tabula

Tātadinit.ppko mēs izveidojām agrāk, jāizskatās apmēram šādi:

klases apache ($ apachename = $ :: apache :: params :: apachename,) manto :: apache :: params {pakete {'apache': name => $ apachename, nodrošina => klāt,}}

Vērtības virkne $ :: apache :: params :: vērtība liek Puppet izvilkt vērtības no apache moduļi, params klase, kam seko parametra nosaukums. Fragments manto :: apache :: params pieļaujinit.ppmantot šīs vērtības.

2. darbība: pārvaldiet konfigurācijas failus

Apache konfigurācijas fails būs atšķirīgs atkarībā no tā, vai strādājat ar sistēmu Red Hat vai Debian.

Šī demonstrācijas beigās varat atrast šādus atkarības failus:httpd.conf(Sarkana cepure),apache2.conf(Debian).

  • Kopēt vietnes saturu httpd.conf unapache2.confatsevišķos failos un saglabājiet tos failus direktorijāplkst / etc / puppetlabs / code / environments / production / moduļi / apache / faili .
  • Rediģējiet abus failus uz atspējot uzturēt dzīvu. Jums būs jāpievieno līnija KeepAlive izslēgts iekšhttpd.conffailu. Ja nevēlaties mainīt šo iestatījumu, katra no tiem augšpusē jāpievieno komentārsfails:
    /etc/puppetlabs/code/environments/production/modules/apache/files/httpd.conf
# Šo failu pārvalda marionete

Pievienojiet šos failus mapeiinit.ppfailu, tāpēc Puppet zinās šo failu atrašanās vietu gan galvenajā serverī, gan aģenta mezglos. Lai to izdarītu, mēs izmantojam failu resurss.

/etc/puppetlabs/code/environments/production/modules/apache/manifests/init.pp

fails {'configuration-file': ceļš => $ conffile, nodrošināt => fails, avots => $ confsource,}

Tā kā konfigurācijas faili ir divās dažādās vietās, resursam mēs piešķiram vispārīgo nosaukumu konfigurācijas fails ar failu ceļš definēts kā parametrs arceļšatribūts.

nodrošināt nodrošina, ka tas ir fails.

avots nodrošina iepriekš izveidoto failu atrašanās vietu leļļu šablonā.

Atverietparams.ppfailu.

Mēs definējam $ conffile un $ confsourcemainīgie lielumijapaziņojums, apgalvojums:

/etc/puppetlabs/code/environments/production/modules/apache/manifests/params.pp

ja $ :: osfamily == 'RedHat' {... $ conffile = '/etc/httpd/conf/httpd.conf' $ confsource = 'marionete: ///modules/apache/httpd.conf'} elsif $: : osfamily == 'Debian' {... $ conffile = '/etc/apache2/apache2.conf' $ confsource = 'marionete: ///modules/apache/apache2.conf'} else {...

Mums ir jāpievieno parametri sākumamapacheklases deklarācijainit.ppfailu, līdzīgi kā iepriekšējā piemērā.

Kad mainās konfigurācijas fails, Apache ir jārestartē. Lai to automatizētu, mēs varam izmantot servisa resursukombinācijā ar paziņot atribūts, kas izsauks resursu darbībai ikreiz, kad tiek mainīts konfigurācijas fails:

/etc/puppetlabs/code/environments/production/modules/apache/manifests/init.pp

fails {'configuration-file': ceļš => $ conffile, nodrošināt => fails, avots => $ confsource, paziņot => Pakalpojums ['apache-service'],} pakalpojums {'apache-service': nosaukums => $ apachename, hasrestart => true,}

apkalpošana resurss izmanto jau izveidoto parametru, kas definēja Apache vārdu Red Hat un Debian sistēmās.
atsākt atribūtu izmanto, lai aktivizētu definētā pakalpojuma restartēšanu.

3. darbība: izveidojiet virtuālos resursdatora failus

Atkarībā no jūsu sistēmas izplatīšanas virtuālā resursdatora faili tiks pārvaldīti atšķirīgi. Tāpēc mēs iekodēsim virtuālo resursdatoru kodujapaziņojums, līdzīgs tam, kas izmantotsparams.ppklase, bet satur faktiskos Leļļu resursus.

  • No iekšienesapache / manifests /direktoriju, izveidojiet un atveriet avhosts.ppfailu. Pievienojietjapaziņojums, apgalvojums:

/etc/puppetlabs/code/environments/production/modules/apache/manifests/vhosts.pp

klases apache :: vhosts {if $ :: osfamily == 'RedHat' {} elsif $ :: osfamily == 'Debian' {} cits {}}

Virtuālā resursdatora faila atrašanās vieta mūsu CentOS 7 serverī ir/etc/httpd/conf.d/vhost.conf . Jums ir jāizveido fails kā veidne leļļu šablonā. Dariet to pašu ar Ubuntu virtuālo resursdatoru failu, kas atrodas/etc/apache2/sites-available/example.com.conf, aizstājotexample.comar servera FQDN.

  • Pārejiet uz veidnes failu apache moduli un pēc tam izveidojiet divus failus saviem virtuālajiem saimniekiem:

Red Hat sistēmām:
/etc/puppetlabs/code/environments/production/modules/apache/templates/vhosts-rh.conf.erb

ServerAdmin ServerName ServerAlias ​​www. DocumentRoot / var / www // public_html / ErrorLog /var/www//logs/error.log CustomLog /var/www//logs/access.log kopā

Debian sistēmām:
/etc/puppet/modules/apache/templates/vhosts-deb.conf.erb

ServerAdmin ServerName ServerAlias ​​www. DocumentRoot / var / www / html // public_html / ErrorLog /var/www/html//logs/error.log CustomLog /var/www/html//logs/access.log kopāPieprasīt visu piešķirto

Šajos failos mēs izmantojam tikai divus mainīgos: administratora pasts un servera nosaukums . Mēs tos definēsim pa mezgliem katrā mezglāsite.ppfailu.

  • Atgriezieties pievhosts.ppfailu. Uz izveidotajām veidnēm tagad var atsaukties kodā:

/etc/puppetlabs/code/environments/production/modules/apache/manifests/vhosts.pp

klases apache :: vhosts {if $ :: osfamily == 'RedHat' {fails {'/etc/httpd/conf.d/vhost.conf': nodrošināt => fails, saturs => veidne ('apache / vhosts-rh .conf.erb '),}} elsif $ :: osfamily ==' Debian '{file {' /etc/apache2/sites-available/$servername.conf ': nodrošināt => fails, saturs => veidne (' apache /vhosts-deb.conf.erb '),}} else {fail (' Šis nav atbalstīts izplatītājs. ')}}

Abas izplatīšanas ģimenes zvana uzfailuresursam un uzņemties virtuālā resursdatora atrašanās vietas nosaukumu attiecīgajā izplatīšanā. Debianam tas vēlreiz nozīmē atsauci uz$ servera vārdsvērtība. Thesaturuatribūts izsauc attiecīgās veidnes.

  • Abi virtuālā resursdatora faili atsaucas uz diviem direktorijiem. Pēc noklusējuma tie nav sistēmās. Mēs tos varam izveidot, izmantojotfailuresurss, katrsjapaziņojums, apgalvojums. Pilnīgsvhosts.conffailam vajadzētu atgādināt:

/etc/puppetlabs/code/environments/production/modules/apache/manifests/vhosts.pp

klases apache :: vhosts {if $ :: osfamily == 'RedHat' {fails {'/etc/httpd/conf.d/vhost.conf': nodrošināt => fails, saturs => veidne ('apache / vhosts-rh .conf.erb '),} fails {[' / var / www / $ servername ',' / var / www / $ servername / public_html ',' / var / www / $ servername / log ',]: nodrošināt => direktorijs,}} elsif $ :: osfamily == 'Debian' {fails {'/etc/apache2/sites-available/$servername.conf': nodrošināt => fails, saturs => veidne ('apache / vhosts-deb. conf.erb '),} fails {[' / var / www / $ servername ',' / var / www / $ servername / public_html ',' / var / www / $ servername / logs ',]: nodrošināt => direktoriju ,}} else {fail ('Tas nav atbalstīts izplatītājs.')}}

4. darbība. Pārbaudiet moduli

  • Pārejiet uzapache / manifests /direktoriju, palaidiet leļļu parsētājs visos failos, lai nodrošinātu, ka Leļļu kodēšana ir bez kļūdām:

sudo / opt / puppetlabs / bin / leļļu parsētājs apstiprina init.pp params.pp vhosts.pp

Tam vajadzētu atgriezties tukšam, bez problēmām.

  • Pārejiet uz piemēri direktorijāapachemodulis. Izveidojietinit.ppfailu un iekļauj izveidotās klases. Nomainiet vērtības$ servera vārdsun$ adminemailar savējiem:

/etc/puppetlabs/code/environments/production/modules/apache/examples/init.pp

serveremail = 'webmaster@example.com' $ servername = 'puppet.example.com' ietver apache include apache :: vhosts
  • Pārbaudiet moduli, palaižot pieteikties leļļu Ar - Nē tags:
    sudo / opt / puppetlabs / bin / leļļu pielietojums --noop init.pp

Tam nevajadzētu atgriezties bez kļūdām un izvades, ka tas izraisīs atsvaidzināšanu no notikumiem. Lai instalētu un konfigurētu Apache Puppet master, palaidiet vēlreiz bez- Nē, ja tas ir vēlams.

  • Pārejiet atpakaļ uz galveno leļļu direktoriju un pēc tam uzizpaužasmape (kas atrodas Apache modulī).

cd / etc / puppetlabs / code / environments / production / manifestes

Izveidojiet asite.ppfails,un iekļaujiet Apache moduli katram aģenta mezglam. Ievadiet arī mainīgosadministratora pasts un servera nosaukumsparametriem. Jūsusite.ppvajadzētu atgādināt šo:

/etc/puppetlabs/code/environments/production/manifests/site.pp

mezgls 'puppet-agent-ubuntu.example.com' {$ adminemail = 'webmaster@example.com' $ servername = 'marionete.example.com' include apache include apache :: vhosts} mezgls 'puppet-agent-centos.example .com '{$ adminemail =' webmaster@example.com '$ servername =' puppet.example.com 'include apache include apache :: vhosts}

Pēc noklusējuma Leļļu aģenta pakalpojums jūsu pārvaldītajos mezglos reizi 30 minūtēs automātiski sazināsies ar galveno un lietos visas jaunās galvenā konfigurācijas. Automātisko aģentu palaišanas laikā varat manuāli izsaukt arī Leļļu aģenta procesu. Lai manuāli palaistu jauno moduli aģentu mezglos, piesakieties mezglos un palaidiet:

sudo / opt / puppetlabs / bin / leļļu aģents -t

Tagad, kad mēs esam iemācījušies moduli izveidot no jauna, uzzināsim, kā izmantot jau esošu moduli no leļļu leļļu kaluma.

Izmantojiet PuppetForge moduli

Leļļu kalve servera darbināšanai jau ir daudz moduļu. Mēs varam tos konfigurēt tikpat plaši kā jūsu izveidoto moduli un ietaupīt laiku, jo mums nav jāizveido modulis no jauna.

kā izveidot paketi Java

Pārliecinieties, ka atrodaties / etc / puppetlabs / code / environments / production / moduļi direktoriju un instalējiet Puppet Forge MySQL modulis autors PuppetLabs. Tas arī instalēs visus obligātos moduļus.

cd / etc / puppetlabs / code / environments / production / moduļi

sudo / opt / puppetlabs / bin / leļļu modulis instalē puppetlabs-mysql

Izmantojiet Hiera, lai izveidotu datu bāzes

Pirms izveidojat MySQL moduļa konfigurācijas failus, apsveriet, ka, iespējams, nevēlaties izmantot tās pašas vērtības visos aģentu mezglos. Lai piegādātu Puppet pareizos datus par katru mezglu, mēs izmantojam Hiera. Katrā mezglā izmantosiet citu saknes paroli, tādējādi izveidojot dažādas MySQL datu bāzes.

  • Virzieties uz/ etc / marioneteun izveidojiet Hiera konfigurācijas failuhiera.yamlgalvenajāmarionetedirektorijā. Jūs izmantosiet Hiera noklusējuma vērtības:

/etc/puppetlabs/code/environments/production/hiera.yaml

--- versija: 5 hierarhija: - nosaukums: Kopējais ceļš: common.yaml noklusējumi: data_hash: yaml_data datadir: data
  • Izveidojiet failuparasts.yaml. Tas noteiks noklusējumu sakne MySQL parole:

/etc/puppetlabs/code/environments/production/common.yaml

mysql :: serveris :: root_password: 'parole'

Mēs izmantojamparasts.yamlfailukad mainīgais lielums nav definēts citur. Tas nozīmē, ka visiem serveriem būs kopīga MySQL saknes parole. Šīs paroles var arī sajaukt, lai palielinātu drošību.

  • Lai izmantotu MySQL moduļa noklusējumus, varat pievienot iekļaut ‘:: mysql :: server’ līnija uzsite.ppfailu. Tomēr šajā piemērā jūs ignorēsit dažus moduļa noklusējumus, lai izveidotu datu bāzi katram no jūsu mezgliem.

Rediģētsite.ppfails ar šādām vērtībām:

mezgls 'Puppetagent-ubuntu.example.com' {$ adminemail = 'webmaster@example.com' $ servername = 'hostname.example.com' ietver apache ietver apache :: vhosts ietver mysql :: serveris mysql :: db {'mydb_ $ {fqdn} ': user =>' myuser ', parole =>' mypass ', dbname =>' mydb ', resursdators => $ :: fqdn, grant => [' SELECT ',' UPDATE '], tag = > $ domain,}} mezgls 'Puppetagent-centos.example.com' {$ adminemail = 'webmaster@example.com' $ servername = 'hostname.example.com' ietver apache ietver apache :: vhosts ietver mysql :: serveris mysql :: db {'mydb _ $ {fqdn}': user => 'myuser', password => 'mypass', dbname => 'mydb', host => $ :: fqdn, grant => ['SELECT', ' UPDATE '], tags => $ domēns,}}

Leļļu moduļu instalēšanas automatizēšana no leļļu meistara līdz leļļu aģentam

  • Varat manuāli palaist šos atjauninājumus katrā mezglā, SSH ievadot katrā mezglā un izsniedzot šādu komandu:

sudo / opt / puppetlabs / bin / leļļu aģents -t

  • Pretējā gadījumā Leļļu aģenta pakalpojums jūsu pārvaldītajos mezglos reizi 30 minūtēs automātiski pārbaudīs meistaru un lietos visas jaunās galvenā konfigurācijas.

Katalogs veiksmīgi piemērots Ubuntu aģentam

Katalogs veiksmīgi piemērots CentOS aģentam

Tādējādi visa instalācija izpaužas automatizēta aģenta mezglos, vienkārši lietojot katalogu.Šajā demonstrācijā izmantotie koda faili un atkarības var atrast šeit .

Es ceru, ka šī demonstrācija jums ir palīdzējusi iegūt skaidru priekšstatu par leļļu moduļiem un manifestiem, kā arī to izmantošanu IT infrastruktūras automatizēšanai.Šajā gadījumā jūsu darbs kļūst tik vienkāršs, vienkārši norādiet konfigurācijas Puppet Master un Leļļu aģenti automātiski novērtēs galveno manifestu un lietos moduli, kas norāda Apache un MySQL iestatīšanu. Ja jums ir jautājumi par jautājumiem, lūdzu, nekautrējieties tos ievietot vietnē .

Ja jūs to atradāt Leļļu apmācība attiecīgs, pārbaudiet Autors: Edureka, uzticams tiešsaistes mācību uzņēmums ar vairāk nekā 250 000 apmierinātu izglītojamo tīklu visā pasaulē. Edureka DevOps sertifikācijas apmācības kurss palīdz izglītojamajiem iegūt zināšanas par dažādiem DevOps procesiem un rīkiem, piemēram, Leļļu, Jenkins, Nagios un GIT, lai automatizētu vairākus SDLC soļus.