Aikaisemmin järjestelmänvalvojat käyttivät palvelinsuoritukseen komentotulkkikomentoja, ja tällä menetelmällä ei ollut skaalautuvuutta. On pelottava tehtävä muuttaa jatkuvasti komentosarjoja sadoille tai tuhansille jatkuvasti muuttuville palvelimille ja niiden järjestelmäkokoonpanoille.
Tässä artikkelissa nuken moduulit ja manifestit Katsotaanpa, kuinka voisimme käyttää nukemoduuleja palvelimen asennuksen, ohjelman asennuksen ja järjestelmän hallinnan automatisointiin.
Tämä blogi käsittelee seuraavia aiheita:
- Johdatus nukkeohjelmointiin
- Keskeiset termit nukkeohjelmoinnissa
- Nukkeohjelman työnkulku
- Esittely: Apache & MySQL: n asennuksen automatisointi
Johdatus nukkeohjelmointiin
Nukke on yksi suosituimmista DevOps-työkaluista, jota käytetään laajasti kokoonpanon hallintaan. Sitä käytetään toteuttamaan johdonmukaisuus infrastruktuurissa. Nukke voi määritellä infrastruktuurin koodina, hallita useita palvelimia ja pakottaa järjestelmän kokoonpanon auttamaan siten automatisoimaan infrastruktuurin hallintaa.
Nukke onoma määrityskieli, Nukke DSL
. Kuten muiden DevOps-ohjelmien kohdalla, Puppet automatisoi muutokset eliminoiden käsikirjoitukseen perustuvat muutokset. Puppet ei kuitenkaan ole yksinkertaisesti toinen kuoren kieli, eikä se ole myöskään puhdas ohjelmointikieli, kuten PHP. Sen sijaan Puppet käyttääettä deklaratiivinen mallipohjainen lähestymistapa IT-automaatioon. Tämän avulla Puppet voi määritellä infrastruktuurin koodiksi ja pakottaa järjestelmän kokoonpanon ohjelmilla.
Ennen kuin jatkat esittelyn kanssa, katsotaanpa muutama nuken ohjelmoinnin keskeinen osa.
big data -analyysin sovellukset
Keskeiset termit nukkeohjelmoinnissa
Manifestit
Nukkeohjelma kutsutaan selvä ja sillä on tiedostonimi .pp laajennus. Nuken oletusarvoinen pääilmoitus on /etc/puppet/manifests/site.pp
. (Tämä määritteleeyleiset järjestelmäkokoonpanot, kuten LDAP-määritykset, DNS-palvelimet tai muut kokoonpanot, jotka koskevat jokaista solmua).
Luokat
Näissä manifesteissa kutsutaan koodilohkoja luokat muut moduulit voivat soittaa. Luokat määrittävät suuret tai keskikokoiset toiminnallisuudet, kuten kaikki sovelluksen suorittamiseen tarvittavat paketit, määritystiedostot ja palvelut. Luokat helpottavat nukketunnuksen uudelleenkäyttöä ja parantavat luettavuutta.
Resurssit
Nukukoodi koostuu pääosin resurssi-ilmoituksista. A resurssi kuvaa tietyn elementin järjestelmän halutusta tilasta. Se voi esimerkiksi sisältää, että tietyn tiedoston pitäisi olla olemassa tai paketti olisi asennettava.
Nukemoduulit
Paitsi pääsite.pp
selvä,se tallentaa manifestitsisään moduulit .
Kaikki nukketunnuksemme on järjestetty moduuleiksi, jotka ovat nuken peruselementtejä, joita voimme käyttää uudelleen ja jakaa. Jokainen moduuli hallitsee tiettyä tehtävää infrastruktuurissa, kuten ohjelmiston asentamista ja määrittämistä.
Moduulit sisältävät nukketunnit, määritellyt tyypit, tehtävät, tehtäväsuunnitelmat, kapasiteetit, resurssityypit ja laajennukset, esimerkiksi mukautetut tyypit tai faktat. Asenna moduulit nukkeihinmodule-polku. Nukke lataa kaiken sisällön jokaisesta moduulin polun moduulista, jolloin tämä koodi on käytettävissä.
Puppetlabsissa on ennalta määritettyjä moduuleja, joita voimme käyttää heti lataamalla ne
NukkeForge
. Voit myös luoda mukautetun nukemoduulin tarpeidesi mukaan.
Nukkeohjelman työnkulku
Käytämme Puppetin deklaratiivista kieltä kuvaamaan haluttua järjestelmän tilaa tiedostoissa, joita kutsutaan manifesteiksi. Manifesteissa kuvataan, kuinka verkko- ja käyttöjärjestelmän resurssit, kuten tiedostot, paketit ja palvelut, tulisi määrittää.
Nuken kokoelmat ilmenevät luettelot ja se soveltaa kutakin luetteloa vastaavaan solmuunsa varmistaakseen t: n kokoonpanonhän solmu on oikeakaikkialla infrastruktuurissasi.
Esittely: Apache & MySQL: n asennuksen automatisointi
Tämä nukkemoduuleja käsittelevä artikkeli on käytännönläheinen, joka näyttää kaksi tapaa käyttää nukketeatterimoduulia ja opettaa myös kuinka automatisoida näillä kahdella moduulilla määritetyn palvelimen asennus.
Ensinnäkin varmista, että sinulla on valmiina Nukke-infrastruktuuri, joka sisältää nukketeatteripalvelimen ja 2 nukketeagenttia.
- Puppet Master: Ubuntu 18.04
- Agentti 1: Ubuntu 18.04
- Agentti 2:CentOS7
Tässä on yhteenveto siitä, mitä saavutamme tässä käytännön toiminnassa:
Joten aloitetaan käytännön:
Moduulin luominen tyhjästä
Tässä nukemoduulissa käsittelemme tehtäviä, kuten Apache-paketin lataamista, tiedostojen määrittämistä ja virtuaalisten isäntien määrittämistä.
- Siirry Puppet Master -sovelluksesta Puppet-moduulihakemistoon ja luo Apache-hakemisto:
cd / etc / puppet / modules sudo mkdir apache
- Luo apache-hakemiston alihakemistoja: manifestit, mallit, tiedostot ja esimerkit.
cd apache sudo mkdir {manifestit, mallit, tiedostot, esimerkit}
- Siirry luetteloihin:
CD ilmestyy
- Tästä lähtien erotamme moduulin luokkiin kyseisen koodiosan tavoitteiden perusteella.
init.pp -> ladata Apache-paketti
params.pp -> määritellä muuttujat ja parametrit
config.pp -> hallita Apache-palvelun määritystiedostoja.
vhosts.pp -> määritellä virtuaaliset isännät.
Tämä moduuli käyttää myös Hiera (sisäänrakennettu avainarvon määritystietojen hakujärjestelmä, jota käytetään tietojen erottamiseen nukketunnuksesta), muuttujien tallentamiseksi jokaiselle solmulle.
Vaihe 1: Apache-paketin lataaminen
Luo init.pp-luokka
Nyt luommeinit.pp
tiedosto manifest-hakemistossa apache-paketin säilyttämiseksi.
Koska meillä on 2 erilaista käyttöjärjestelmää (ubuntu ja CentOS7), jotka käyttävät erilaisia Apache-pakettien nimiä, meidän on käytettävä muuttujaa$ apachename
.
/etc/puppetlabs/code/environments/production/modules/apache/manifests/init.pp
class apache {package {'apache': nimi => $ apachename, varmista => present,}}
paketti resurssi mahdollistaa paketin hallinnan. Tätä käytetään lisäämään, poistamaan tai varmistamaan, että paketti on läsnä.
Useimmissa tapauksissa nimi resurssin (apache, yllä) tulisi olla hallinnoitavan paketin nimi. Eri nimeämistapojen takiakutsumme paketin todellista nimeäkanssa nimi viite. Niin nimi , vaatii vielä määrittelemättömän muuttujan$ apachename
.
varmistaa viite varmistaa, että paketti onesittää.
Luo params.pp-tiedosto
params.pp
tiedosto määrittelee tarvittavat muuttujat. Vaikka voimme määritellä nämä muuttujatinit.pp
tiedostoa, koska enemmän muuttujia on käytettävä itse resurssityypin ulkopuolella käyttäen aparams.pp
tiedosto sallii muuttujien määrittelynjoslauseita ja käytetään useissa luokissa.
Luoparams.pp
tiedosto ja seuraava koodi.
/etc/puppetlabs/code/environments/production/modules/apache/manifests/params.pp
luokan apache :: params {jos $ :: osfamily == 'RedHat' {$ apachename = 'httpd'} elsif $ :: osfamily == 'Debian' {$ apachename = 'apache2'} else {fail ('tämä ei ole tuettu jakelu. ')}}
Alkuperäisen ulkopuolella init.pp
luokka, jokaisen luokan nimen on erotettavaapache. Kutsumme tätä luokkaa nimellä apache :: params . Kaksinkertaisen kaksoispisteen jälkeen olevan nimen tulisi jakaa nimi tiedoston kanssa. Anjos-lauseketta käytetään parametrien määrittelemiseen Tekijä , Nukke on itse asennettuna osana asennusta. Täällä Facter vetää alas käyttöjärjestelmäperheen (osfamily), havaitsemaan, jos onpunainen hattu
taiDebian-pohjainen.
Kun parametrit on lopullisesti määritelty, meidän on kutsuttava params.pp
tiedosto ja parametritinit.pp
. Tätä varten meidän on lisättävä parametrit luokan nimen jälkeen, mutta ennen avaavaa kiharaa hakasulkua({).
Joteninit.pp
Aiemmin luomamme pitäisi näyttää tältä:
luokan apache ($ apachename = $ :: apache :: params :: apachename,) perii :: apache :: params {paketti {'apache': nimi => $ apachename, varmistaa => läsnä,}}
Arvon merkkijono $ :: apache :: params :: arvo
käskee nuken vetämään arvot apache moduulit, parametrit luokka, jota seuraa parametrin nimi. Pala perii :: apache :: params
salliiinit.pp
periä nämä arvot.
Vaihe 2: Hallitse määritystiedostoja
Apache-määritystiedosto on erilainen riippuen siitä, työskenteletkö Red Hat- vai Debian-pohjaisessa järjestelmässä.
Tämän esittelyn lopusta löydät seuraavat riippuvuustiedostot:httpd.conf
(Punainen hattu),apache2.conf
(Debian).
- Kopioi
httpd.conf
jaapache2.conf
erillisissä tiedostoissa ja tallenna ne tiedostot hakemistoonklo/ etc / puppetlabs / code / environments / production / modules / apache / files
.
- Muokkaa molempia tiedostoja Poista käytöstä pitää hengissä. Sinun on lisättävä rivi KeepAlive pois päältä että
httpd.conf
tiedosto. Jos et halua muuttaa tätä asetusta, meidän on lisättävä kommentti jokaisen yläosaantiedosto:
/etc/puppetlabs/code/environments/production/modules/apache/files/httpd.conf
#Tätä tiedostoa hallinnoi nukke
Lisää nämä tiedostotinit.pp
tiedosto, joten Puppet tietää näiden tiedostojen sijainnin sekä pääpalvelin- että agenttisolmuissa. Tätä varten käytämme tiedosto resurssi.
/etc/puppetlabs/code/environments/production/modules/apache/manifests/init.pp
tiedosto {'configuration-file': polku => $ conffile, varmista => tiedosto, lähde => $ confsource,}
Koska kokoonpanotiedostot ovat kahdessa eri paikassa, annamme resurssille yleisen nimen kokoonpanotiedosto tiedoston kanssa polku määritetään parametrinapolkumääritteen.
varmistaa varmistaa, että se on tiedosto.
lähde antaa yllä olevien tiedostojen sijainnin nukketietokoneessa.
Avaaparams.pp
tiedosto.
Määritämme $ confile
ja $ confsource
muuttujatjoslausunto:
/etc/puppetlabs/code/environments/production/modules/apache/manifests/params.pp
jos $ :: osfamily == 'RedHat' {... $ conffile = '/etc/httpd/conf/httpd.conf' $ confsource = 'puppet: ///modules/apache/httpd.conf'} elsif $: : osfamily == 'Debian' {... $ conffile = '/etc/apache2/apache2.conf' $ confsource = 'puppet: ///modules/apache/apache2.conf'} else {...
Meidän on lisättävä parametritapacheluokan vakuutusinit.pp
tiedosto, samanlainen kuin edellinen esimerkki.
Kun määritystiedosto muuttuu, Apache on käynnistettävä uudelleen. Tämän automatisoimiseksi voimme käyttää palveluresurssiayhdessä ilmoittaa attribuutti, joka kutsuu resurssin toimimaan aina, kun määritystiedostoa muutetaan:
/etc/puppetlabs/code/environments/production/modules/apache/manifests/init.pp
tiedosto {'configuration-file': polku => $ conffile, varmista => tiedosto, lähde => $ confsource, ilmoita => Palvelu ['apache-palvelu'],} palvelu {'apache-palvelu': nimi => $ apachename, hasrestart => true,}
palvelu resurssi käyttää jo luotua parametria, joka määritteli Apache-nimen Red Hat- ja Debian-järjestelmissä.
käynnistä uudelleen määritettä käytetään käynnistämään määritetyn palvelun uudelleenkäynnistys.
Vaihe 3: Luo virtuaaliset isäntätiedostot
Järjestelmän jakelusta riippuen virtuaalipalvelimen tiedostoja hallitaan eri tavalla. Tämän vuoksi me koodataan virtuaalisten isäntien koodijoslauseke, samanlainen kuinparams.pp
luokka, mutta sisältää todelliset nuken resurssit.
- Sisältäapache / manifestit /hakemisto, luo ja avaa a
vhosts.pp
tiedosto. Lisää luurankojoslausunto:
/etc/puppetlabs/code/environments/production/modules/apache/manifests/vhosts.pp
luokan apache :: vhosts {if $ :: osfamily == 'RedHat' {} elsif $ :: osfamily == 'Debian' {} else {}}
CentOS 7 -palvelimen virtuaalisen isäntätiedoston sijainti on/etc/httpd/conf.d/vhost.conf
.
Sinun on luotava tiedosto mallina Puppet masteriin. Tee sama Ubuntun virtuaalihostitiedostolle, joka sijaitsee osoitteessa/etc/apache2/sites-available/example.com.conf
, korvaaesimerkki.compalvelimen FQDN: n kanssa.
lisää kaksi numeroa java
- Siirry kohtaan malleja tiedosto apache moduuli ja luo sitten kaksi tiedostoa virtuaalisille isäntällesi:
Red Hat -järjestelmille:
/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 yhdistetty
Debian-järjestelmät:
/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 yhdistettyVaadi kaikki sallitut
Käytämme vain kahta muuttujaa näissä tiedostoissa: järjestelmänvalvojan sähköposti
ja palvelimen nimi
. Määritämme nämä solmu kerrallaansite.pp
tiedosto.
minun sql-oppaat aloittelijoille
- Palaa sivulle
vhosts.pp
tiedosto. Luotuihin malleihin voidaan nyt viitata koodissa:
/etc/puppetlabs/code/environments/production/modules/apache/manifests/vhosts.pp
luokan apache :: vhosts {if $ :: osfamily == 'RedHat' {tiedosto {'/etc/httpd/conf.d/vhost.conf': Varmista => tiedosto, sisältö => malli ('apache / vhosts-rh .conf.erb '),}} elsif $ :: osfamily ==' Debian '{tiedosto {' /etc/apache2/sites-available/$servername.conf ': varmistaa => tiedosto, sisältö => malli (' apache /vhosts-deb.conf.erb '),}} else {fail (' Tämä ei ole tuettu jakelu. ')}}
Molemmat jakeluperheet kutsuvattiedostoresurssi ja ota virtuaalisen isännän sijainnin nimi kyseisessä jakelussa. Debianille tämä tarkoittaa jälleen kerran viittaamistapalvelimen käyttäjätunnus
arvo.sisältöattribute kutsuu vastaavat mallit.
- Molemmat virtuaaliset isäntätiedostot viittaavat kahteen hakemistoon. Ne eivät ole oletusarvoisesti järjestelmissä. Voimme luoda nämä käyttämällätiedostoresurssi, kukinjoslausunto. Täydellinen
vhosts.conf
tiedoston tulisi muistuttaa:
/etc/puppetlabs/code/environments/production/modules/apache/manifests/vhosts.pp
luokan apache :: vhosts {if $ :: osfamily == 'RedHat' {tiedosto {'/etc/httpd/conf.d/vhost.conf': Varmista => tiedosto, sisältö => malli ('apache / vhosts-rh .conf.erb '),} tiedosto {[' / var / www / $ palvelimen nimi ',' / var / www / $ palvelimen nimi / julkinen_html ',' / var / www / $ palvelimen nimi / loki ',]: varmista => hakemisto,}} elsif $ :: osfamily == 'Debian' {tiedosto {'/etc/apache2/sites-available/$servername.conf': varmistaa => tiedosto, sisältö => malli ('apache / vhosts-deb. conf.erb '),} tiedosto {[' / var / www / $ palvelimen nimi ',' / var / www / $ palvelimen nimi / public_html ',' / var / www / $ palvelimen nimi / lokit ',]: varmistaa => hakemisto ,}} else {fail ('Tämä ei ole tuettu jakelu.')}}
Vaihe 4: Testaa moduuli
- Siirry kohtaan
apache / manifestit /
, suorita nuken jäsennin kaikissa tiedostoissa varmistaaksesi, että nukketunnus on virheetön:
sudo / opt / puppetlabs / bin / puppet jäsennin vahvistaa init.pp params.pp vhosts.pp
Sen pitäisi palata tyhjä, ilman ongelmia.
- Siirry kohtaan esimerkkejä hakemistossaapachemoduuli. Luo
init.pp
tiedosto ja sisällytä luodut luokat. Korvaa arvot arvollepalvelimen käyttäjätunnus
ja$ adminemail
omallasi:
/etc/puppetlabs/code/environments/production/modules/apache/examples/init.pp
serveremail = 'webmaster@example.com' $ servername = 'puppet.example.com' sisältää apache sisältää apache :: vhosts
- Testaa moduuli suorittamalla nukke soveltaa kanssa - Ei tag:
sudo / opt / puppetlabs / bin / nukke soveltaa --noop init.pp
Sen ei pitäisi palauttaa virheitä ja tulosta, että se käynnistää päivityksen tapahtumista. Asenna ja määritä apache Puppet masteriin suorittamalla uudelleen ilman- Ei, jos niin halutaan.
- Siirry takaisin Puppet-päähakemistoon ja sittenilmeneekansio (eiApache-moduulissa oleva).
cd / etc / puppetlabs / code / environments / production / manifestes
Luosite.pp
tiedosto,ja sisällyttää Apache-moduulin kullekin agenttisolmulle. Syötä myös muuttujatjärjestelmänvalvojan sähköposti
ja palvelimen nimi
parametrit. Sinunsite.pp
pitäisi muistuttaa seuraavaa:
/etc/puppetlabs/code/environments/production/manifests/site.pp
solmu 'puppet-agent-ubuntu.example.com' {$ adminemail = 'webmaster@example.com' $ servername = 'puppet.example.com' include apache include apache :: vhosts} solmu 'puppet-agent-centos.example .com '{$ adminemail =' webmaster@example.com '$ servername =' puppet.example.com 'include apache include apache :: vhosts}
Oletuksena hallittujen solmujen Nukke-agenttipalvelu tarkistaa automaattisesti isännältä 30 minuutin välein ja ottaa käyttöön kaikki uudet asetukset isännältä. Voit myös kutsua Puppet-agenttiprosessin manuaalisesti automaattisten agenttiajojen väliin. Suorita uusi moduuli agenttisolmuissa manuaalisesti, kirjaudu sisään solmuihin ja suorita:
sudo / opt / puppetlabs / bin / nukketeagentti -t
Nyt kun olemme oppineet luomaan moduulin tyhjästä, opitaan käyttämään ennestään olemassa olevaa moduulia nukketeatterin nukkejasta.
Käytä PuppetForgen moduulia
Puppet Forge palvelimella on jo useita moduuleja suoritettavaksi. Voimme konfiguroida nämä yhtä laajalti kuin luomasi moduuli ja säästää aikaa, koska meidän ei tarvitse luoda moduulia tyhjästä.
Varmista, että olet / etc / puppetlabs / code / environments / production / modules
ja asenna Puppet Forgen MySQL-moduuli kirjoittanut PuppetLabs. Tämä asentaa myös kaikki vaadittavat moduulit.
cd / etc / nukketabletit / koodi / ympäristöt / tuotanto / moduulit
sudo / opt / puppetlabs / bin / nukke-moduuli asentaa puppetlabs-mysql
Luo tietokantoja Hieran avulla
Ennen kuin luot määritystiedostoja MySQL-moduulille, ota huomioon, ettet halua käyttää samoja arvoja kaikissa agenttisolmuissa. Toimitamme Puppetille oikeat tiedot solmua kohden käyttämällä Hieraa. Käytät eri juurisalasanaa solmua kohden, mikä luo erilaisia MySQL-tietokantoja.
- Navigoida johonkin
/ etc / nukke
ja luo Hieran määritystiedostohiera.yaml
pääosinnukkehakemistoon. Käytät Hieran oletusarvoja:
/etc/puppetlabs/code/environments/production/hiera.yaml
--- versio: 5 hierarkia: - nimi: Yhteinen polku: common.yaml-oletusarvot: data_hash: yaml_data datadir: data
- Luo tiedosto
common.yaml
. Se määrittää oletusarvon juuri salasana MySQL: lle:
/etc/puppetlabs/code/environments/production/common.yaml
mysql :: palvelin :: root_password: 'salasana'
Käytämmecommon.yaml
tiedostokun muuttujaa ei ole määritelty muualla. Tämä tarkoittaa, että kaikilla palvelimilla on sama MySQL-juurisalasana. Nämä salasanat voidaan myös hajauttaa turvallisuuden lisäämiseksi.
- Voit käyttää MySQL-moduulin oletusasetuksia lisäämällä sisältää ':: mysql :: palvelin' linja
site.pp
tiedosto. Tässä esimerkissä kuitenkin ohitat moduulin oletusasetukset luodaksesi tietokannan kullekin solmulle.
Muokkaasite.pp
tiedosto, jolla on seuraavat arvot:
solmu 'Puppetagent-ubuntu.example.com' {$ adminemail = 'webmaster@example.com' $ servername = 'hostname.example.com' include apache include apache :: vhosts include mysql :: server mysql :: db {'mydb_ $ {fqdn} ': käyttäjä =>' oma käyttäjä ', salasana =>' mypass ', dbname =>' mydb ', isäntä => $ :: fqdn, grant => [' SELECT ',' UPDATE '], tag = > $ domain,}} solmu 'Puppetagent-centos.example.com' {$ adminemail = 'webmaster@example.com' $ servername = 'hostname.example.com' sisältää apache sisältää apache :: vhosts sisältävät mysql :: server mysql :: db {'mydb _ $ {fqdn}': user => 'myuser', salasana => 'mypass', dbname => 'mydb', host => $ :: fqdn, grant => ['SELECT', ' PÄIVITÄ '], tag => $ domain,}}
Nukumoduulien asennuksen automatisointi nukketeatterista nukenagenttiin
- Voit suorittaa nämä päivitykset manuaalisesti jokaisessa solmussa SSH: n avulla jokaiseen solmuun ja antamalla seuraavan komennon:
sudo / opt / puppetlabs / bin / nukketeagentti -t
- Muussa tapauksessa hallittujen solmujen Nukke-agenttipalvelu tarkistaa automaattisesti isännältä 30 minuutin välein ja ottaa käyttöön kaikki uudet asetukset isännältä.
Luetteloa on sovellettu onnistuneesti Ubuntu-agenttiin
Luetteloa on sovellettu onnistuneesti CentOS-agentille
Siten koko asennus saa automatisoitu agenttisolmuissa soveltamalla vain luetteloa.Tässä esittelyssä käytetyt kooditiedostot ja riippuvuudet löytyvät tässä .
Toivon, että tämä demo on auttanut sinua saamaan selkeän käsityksen nuken moduuleista ja manifesteista sekä niiden käytöstä IT-infrastruktuurin automatisointiin.Tässä tapauksessa työstäsi tulee niin helppoa, määritä vain kokoonpanot Puppet Master -sovelluksessa ja Puppet-agentit arvioivat automaattisesti pääilmoituksen ja käyttävät moduulia, joka määrittelee Apache- ja MySQL-asetukset. Jos sinulla on kysyttävää, lähetä ne osoitteeseen .
Jos löysit tämän Nukkeopetus asiaankuuluva, tutustu Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa. Edureka DevOps -sertifiointikoulutus auttaa oppijoita saamaan asiantuntemusta erilaisista DevOps-prosesseista ja työkaluista, kuten Puppet, Jenkins, Nagios ja GIT SDLC: n useiden vaiheiden automatisoimiseksi.