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ā
- Galvenie termini leļļu programmēšanā
- Leļļu programmas darbplūsma
- Demonstrācija: Apache un MySQL instalēšanas automatizēšana
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.pp
manifests,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.
Puppetlabs 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.pp
failu 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.pp
fails definēs nepieciešamos mainīgos. Lai gan mēs varētu definēt šos mainīgosinit.pp
failu, jo vairāk mainīgo būs jāizmanto ārpus paša resursa veida, izmantojot aparams.pp
fails ļauj definēt mainīgosjapaziņojumus un izmanto vairākās klasēs.
Izveidojiet aparams.pp
failu 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.pp
klasei, 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 cepure
vaiDebian 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.pp
ko 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.pp
mantot šī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.conf
atsevišķ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.conf
failu. 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.pp
failu, 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.pp
failu.
Mēs definējam $ conffile
un $ confsource
mainī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.pp
failu, 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.pp
klase, bet satur faktiskos Leļļu resursus.
- No iekšienesapache / manifests /direktoriju, izveidojiet un atveriet a
vhosts.pp
failu. 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.pp
failu.
- Atgriezieties pie
vhosts.pp
failu. 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ārds
vē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īgs
vhosts.conf
failam 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 uz
apache / 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. Izveidojiet
init.pp
failu un iekļauj izveidotās klases. Nomainiet vērtības$ servera vārds
un$ adminemail
ar 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 (nēkas atrodas Apache modulī).
cd / etc / puppetlabs / code / environments / production / manifestes
Izveidojiet asite.pp
fails,un iekļaujiet Apache moduli katram aģenta mezglam. Ievadiet arī mainīgosadministratora pasts
un servera nosaukums
parametriem. Jūsusite.pp
vajadzē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 / marionete
un izveidojiet Hiera konfigurācijas failuhiera.yaml
galvenajā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 failu
parasts.yaml
. Tas noteiks noklusējumu sakne MySQL parole:
/etc/puppetlabs/code/environments/production/common.yaml
mysql :: serveris :: root_password: 'parole'
Mēs izmantojamparasts.yaml
failukad 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 uz
site.pp
failu. 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.pp
fails 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.