Si të instaloni serverin dhe agjentin e kukullave në Debian 11
Puppet është një mjet i centralizuar i menaxhimit dhe automatizimit të konfigurimit. DevOps krijon menaxhimin e konfigurimit për të vendosur serverë dhe aplikacione, dhe i gjithë konfigurimi për automatizimin ruhet në \Serverin e Kukullave\ qendror. Pas kësaj, nyjet \Agjenti\ do të tërheqin një konfigurim të ri nga \Serveri i Kukullave\ dhe do të zbatojnë gjendjen siç është përcaktuar.
Të gjitha lidhjet ndërmjet nyjeve \Serveri i kukullave\ dhe \Agjenti\ janë të koduara si parazgjedhje duke përdorur certifikatën SSL/TLS. Puppet përdor gjuhën specifike të domenit (DSL) për të përshkruar konfigurimin e sistemit dhe është e ngjashme me sintaksën Ruby.
Në këtë udhëzues, ju do të instaloni dhe konfiguroni serverin dhe agjentin Puppet në Debian 11 Bullsye. Ju do të instaloni serverin Puppet në serverin e emrit të hostit të serverit kukull dhe agjentin Puppet në server me agjentin e emrit të hostit. Në fund, do të krijoni manifestet e para të kukullave për instalimin e stakut bazë LEMP në nyjen e agjentit.
Kusht paraprak
- Do t'ju duhen dy serverë të ndryshëm Debian 11.
- server-kukulla me adresë IP 192.168.5.100 dhe fqdn puppet-server.localdomainl.lan.
- Nyja agent me adresën IP 192.168.5.150 dhe fqdn agent.localdomain.lan.
Vendosja e FQDN
Së pari, do të konfiguroni Emrin e Domenit të Kualifikuar plotësisht (FQDN) dhe skedarin /etc/hosts si në serverin kukull ashtu edhe në agjent. Kjo do të sigurojë që të dy serverët të mund të komunikojnë me emrin e domenit lokal.
Për të konfiguruar FQDN, ekzekutoni komandën hostnamectl më poshtë.
Ekzekutoni komandën e mëposhtme për të konfiguruar fqdn puppet-server.localdomain.lan në server-kukulla.
hostnamectl set-hostname puppet-server.localdomain.lan
Ekzekutoni komandën e mëposhtme për të konfiguruar fqdn agent.localdomain.lan në nyjen agent.
hostnamectl set-hostname agent.localdomain.lan
Më pas, modifikoni skedarin /etc/hosts duke përdorur redaktuesin vim si më poshtë.
sudo vim /etc/hosts
Kopjoni dhe ngjisni konfigurimin e mëposhtëm.
192.168.5.100 puppet-server.localdomain.lan
192.168.5.150 agent.localdomain.lanRuani skedarin dhe dilni.
Më në fund, ekzekutoni komandën ping më poshtë për të verifikuar lidhjen midis serverit të kukullave dhe agjentit.
ping puppet-server.localdomain.lan -c3
ping agent.localdomain.lan -c3Nëse konfigurimi juaj është i saktë, do të shihni daljen e mëposhtme. puppet-server.localdomain.lan zgjidhet te serveri 192.168.5.100 dhe agent.localdomain.lan zgjidhet te agjenti nyja 192.168.5.150.
Shtimi i depove të kukullave
Si parazgjedhje, Puppelabs ofron paketa të depove për shpërndarje të ndryshme Linux, duke përfshirë Debian 11 Bulllseye më të fundit. Në këtë hap, ju do të shtoni dhe instaloni depon e Puppet si në serverin e kukullave ashtu edhe në agjent. Në kohën e këtij shkrimi, versioni më i fundit i Puppet është v7.x.
Shkarkoni paketën e ruajtjes duke përdorur komandën wget më poshtë.
wget https://apt.puppet.com/puppet7-release-bullseye.deb
Më pas, instaloni skedarin deb puppet7-release-bullseye.deb duke përdorur komandën dpkg më poshtë.
sudo dpkg -i puppet7-release-bullseye.deb
Pasi të përfundojë instalimi, ekzekutoni komandën apt më poshtë për të përditësuar dhe rifreskuar indeksin e paketës Debian.
sudo apt update
Tani jeni gati për të instaluar paketat Puppet.
Instalimi i serverit të kukullave
Në këtë hap, do të instaloni paketën e serverit Puppet në serverin e kukullave. Në kohën e këtij shkrimi, versioni më i fundit i Puppet është v7.
Për të instaluar Puppet Server, ekzekutoni komandën apt më poshtë. Kjo komandë gjithashtu instaloi automatikisht paketa të tjera si Java OpenJDK.
sudo apt install puppetserver
Shkruani Y për të konfirmuar instalimin.
Pas përfundimit të instalimit, do t'ju duhet të ngarkoni mjedisin bash për Serverin e Kukullave.
Si parazgjedhje, Puppet ruan skedarin e tij binar në drejtorinë /opt/puppetlabs/bin. Ekzekutoni komandën e mëposhtme për të aplikuar ndryshoren e re të mjedisit PATH për Serverin e Kukullave.
source /etc/profile.d/puppet-agent.sh
echo $PATHOpsionale, mund të aplikoni gjithashtu variablin e mjedisit PATH duke ekzekutuar komandën e mëposhtme.
echo "export PATH=$PATH:/opt/puppetlabs/bin/" | tee -a ~/.bashrc
source ~/.bashrcTani verifikoni variablin e mjedisit PATH duke përdorur komandën më poshtë. Sigurohuni që drejtoria /opt/puppetlabs/bin të jetë në listën e ndryshores së mjedisit PATH.
echo $PATH
Pas kësaj, ju mund të ekzekutoni komandën puppetserver normalisht. Më poshtë mund të shikoni versionin Puppet.
puppetserver -v
Ju duhet të merrni rezultatin të ngjashëm me pamjen e ekranit më poshtë.
Më pas, modifikoni konfigurimin e serverit Puppet /etc/default/puppetserver duke përdorur redaktorin vim.
sudo vim /etc/default/puppetserver
Ndryshoni alokimin maksimal të memories për Serverin e Kukullave. Kjo varet nga memoria e sistemit tuaj. Në këtë udhëzues, ne kemi 2 GB memorie dhe do të ndajmë për serverin Puppet 1 GB. Dhe ne do të përdorim konfigurimin e mëposhtëm.
JAVA_ARGS="-Xms1g -Xmx1g"
Ruani skedarin e konfigurimit dhe dilni.
Më pas, ringarkoni menaxherin systemd për të aplikuar skedarin e ri të shërbimit Puppet.
sudo systemctl daemon-reload
Pastaj filloni dhe aktivizoni shërbimin puppetserver duke përdorur komandën e mëposhtme.
sudo systemctl start enable --now puppetserver
Shërbimi server kukullash duhet të funksionojë dhe të funksionojë. Ekzekutoni komandën e mëposhtme për të verifikuar serverin e kukullave.
sudo systemctl status puppetserver
Ju duhet të shihni daljen e ngjashme me pamjen e ekranit më poshtë.
Për më tepër, nëse jeni duke përdorur një mur zjarri UFW në sistemin tuaj, sigurohuni që të hapni portin 8140 që do të përdoret nga serveri i kukullave.
Ekzekutoni komandën e mëposhtme për të bashkuar çdo lidhje hyrëse nga nënrrjeti lokal 192.168.5.0/24 te serveri i kukullave në portën 8140.
sudo ufw allow from 192.168.5.0/24 to any proto tcp port 8140
sudo ufw statusMë poshtë janë rregullat aktuale të murit të zjarrit UFW që duhet të shihni.
Konfigurimi i serverit të kukullave
Në këtë hap, ju do të redaktoni konfigurimin e Serverit të Kukullave. Dhe kjo mund të bëhet duke redaktuar drejtpërdrejt konfigurimin e Puppet ose duke gjeneruar konfigurimin duke përdorur linjën e komandës kukull.
Ekzekutoni komandat e kukullave më poshtë për të konfiguruar Serverin e Kukullave. Kjo do të konfigurojë emrin e paracaktuar të domenit të Serverit të kukullave dhe intervalin e ekzekutimit në seksionin kryesor dhe mjedisin dhe dns_alt_names në seksionin server.
puppet config set server puppet-server.localdomain.lan --section main
puppet config set runinterval 1h --section main
puppet config set environment production --section server
puppet config set dns_alt_names puppet-server,puppet-server.localdomain.lan --section serverTani kontrolloni konfigurimin e Serverit të Kukullave /etc/puppetlabs/puppet/puppet.conf duke përdorur komandën cat më poshtë.
cat /etc/puppetlabs/puppet/puppet.conf
Ju duhet të shihni konfigurimin e Serverit të Kukullave si më poshtë.
Së fundi, rinisni shërbimin puppetserver për të aplikuar një konfigurim të ri duke ekzekutuar komandën systemctl më poshtë.
sudo systemctl restart puppetserver
Në këtë pikë, ju keni përfunduar instalimin dhe konfigurimin e Serverit të Kukullave.
Instalimi dhe konfigurimi i agjentit të kukullave
Në këtë hap, do të instaloni dhe konfiguroni Agjentin e Kukullave në agjentin në makinën e klientit.
Përpara se të instaloni Puppet Agent, sigurohuni që të keni përfunduar konfigurimin FQDN dhe të keni shtuar depon e Puppet.
Tani le të instalojmë dhe konfigurojmë Agjentin e Kukullave.
Instaloni paketën puppet-agent duke përdorur komandën apt më poshtë.
sudo apt install puppet-agent
Pas përfundimit të instalimit, ekzekutoni komandën e mëposhtme për të nisur dhe aktivizuar shërbimin Puppet.
sudo /opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true
Ju duhet të shihni daljen e ngjashme me pamjen e ekranit më poshtë.
Më pas, do të konfiguroni variablin e mjedisit PATH për të shtuar shtegun binare të Puppet /opt/puppetlabs/bin/. Duke bërë këtë, ju lejon të ekzekutoni komandën kukull drejtpërdrejt pa shtegun e plotë të skedarit binar.
source /etc/profile.d/puppet-agent.sh
echo $PATHNjë mënyrë tjetër për ta bërë këtë është duke shtuar një ndryshore të re mjedisore PATH në konfigurimin ~/.bashrc duke përdorur komandën e mëposhtme.
echo "export PATH=$PATH:/opt/puppetlabs/bin/" | tee -a ~/.bashrc
source ~/.bashrcTani verifikoni konfigurimin e ndryshores së mjedisit PATH duke përdorur komandën e mëposhtme.
echo $PATH
Ju duhet të shihni se shtegu binare i kukullave /opt/puppetlabs/bin është shtuar në ndryshoren e mjedisit PATH.
Regjistrimi i agjentit të kukullave në serverin e kukullave
Pas instalimit të Agjentit të Kukullave, tani do të konfiguroni Agjentin e Kukullave për ta regjistruar atë në Serverin kryesor të Kukullave.
Së pari, sigurohuni që serveri i kukullave fqdn të jetë i arritshëm nga makina agjenti. Provoni atë duke përdorur komandën ping më poshtë.
ping puppet-server.localdomain.lan -c3
Më pas, ekzekutoni komandat e mëposhtme për të konfiguruar Agjentin e Kukullave. Kjo do të përcaktojë Emri i domenit të Serverit të Kukullave dhe ca_server në seksionin agjent.
puppet config set server puppet-server.localdomain.lan --section agent
puppet config set ca_server puppet-server.localdomain.lan --section agentVerifikoni konfigurimin e krijuar të Puppet-it në skedarin /etc/puppetlabs/puppet/puppet.conf.
cat /etc/puppetlabs/puppet/puppet.conf
Ju duhet të shihni daljen e ngjashme me pamjen e ekranit më poshtë.
Tani, ekzekutoni komandën e mëposhtme për të rifilluar shërbimin Puppet dhe për të aplikuar ndryshime të reja. Më pas verifikoni shërbimin Puppet dhe sigurohuni që ai është aktiv dhe funksional.
sudo systemctl restart puppet
sudo systemctl status puppetMë poshtë është rezultati i statusit të shërbimit të Kukullave.
Më pas, ekzekutoni komandën e mëposhtme për të regjistruar agjentin Puppet në serverin Puppet. Kjo komandë do të gjenerojë certifikata të reja TLS dhe do të krijojë kërkesa të reja për nënshkrimin e certifikatës në serverin Puppet.
puppet ssl bootstrap
Tani kaloni te terminali i Serverit të Kukullave dhe ekzekutoni komandën e mëposhtme për të kontrolluar kërkesat për nënshkrimin e certifikatës, më pas verifikoni nënshkrimin e certifikatës për Agjentin e Kukullave agent.localdomain.lan.
puppetserver ca list --all
puppetserver ca sign --certname agent.localdomain.lanJu duhet të shihni mesazhin si Kërkesa për certifikatë e nënshkruar me sukses .....
Më pas, ekzekutoni komandën e mëposhtme për të verifikuar listën e certifikatave në Serverin e Kukullave.
puppetserver ca list-all
Ju duhet të shihni dy certifikata të ndryshme, certifikatën për Serverin e Kukullave dhe Agjentin e Kukullave.
Tani kaloni sërish te terminali i Agjentit të Kukullave dhe duhet të shihni mesazhet si Njoftim: Përfundoi inicializimi SSL, që do të thotë se kërkesat për nënshkrimin e certifikatës janë përfunduar me sukses.
Në këtë pikë, ju jeni gati për të krijuar një manifest të ri të parë Kukullash.
Krijimi i Manifestit të Parë të Kukullave
Në këtë hap, do të krijoni një manifest të ri të parë kukull për instalimin e LEMP Stack (Nginx, MariaDB dhe PHP-FPM). Të gjitha manifestet për mjedisin e prodhimit duhet të ruhen në direktorinë e Serverit të Kukullave /etc/puppetlabs/code/environments/production/.
Ndrysho direktorinë tuaj aktuale të punës në /etc/puppetlabs/code/environments/production/.
cd /etc/puppetlabs/code/environments/production/
Më pas, krijoni një direktori të re të paraqitjes së manifestit për LEMP Stack nën drejtorinë module.
mkdir -p modules/lemp/{manifests,files}
Kaloni te drejtoria modules/lemp dhe krijoni një skedar të ri manifesti kukullash manifests/init.pp duke përdorur redaktuesin vim/nano.
cd modules/lemp/
nano manifests/init.ppKopjoni dhe ngjisni gjuhën e mëposhtme të sintaksës kukull për instalimin e LEMP Stack, sigurohuni që çdo shërbim LEMP Stack të funksionojë dhe të krijoni një skedar të ri të personalizuar index.html.
class lemp {
Package { ensure => 'installed' }
$lemppackages = [ 'nginx', 'mariadb-server', 'php-fpm' ]
package { $lemppackages: }
Service { ensure => 'running', enable => 'true'}
$lempsvc = [ 'nginx', 'mariadb', 'php7.4-fpm' ]
service { $lempsvc: }
file { '/var/www/html/index.html':
ensure => file,
content => "<h1><center>Welcome to Nginx - Managed by Puppet</center></h1>",
mode => '0644',
}
}Ruani skedarin dhe dilni.
Më pas, ekzekutoni komandën e mëposhtme për të vërtetuar skedarin e manifestit të kukullave init.pp.
puppet parser validate init.pp
Nëse nuk keni parë ndonjë mesazh dalës, konfigurimi është i saktë.
Tani krijoni një konfigurim tjetër manifests/site.pp duke përdorur redaktuesin vim/nano.
cd /etc/puppetlabs/code/environments/production/
vim manifests/sites.ppPërcaktoni hostin e synuar në agent.localdomain.lan dhe aplikoni manifestin e ri të Puppet lemp.
node 'agent.localdomain.lan' {
include lemp
}Ruani skedarin dhe dilni.
Verifikoni përsëri konfigurimin e manifestit të kukullave duke përdorur komandën e mëposhtme.
puppet parser validate site.pp
Verifikimi dhe aplikimi i manifestimeve të kukullave
Tani keni krijuar një manifest të ri të parë të Kukullave për vendosjen e LEMP Stack. Në këtë pikë, nyja Puppet Agent do të sinkronizojë automatikisht të gjitha manifestet me Serverin e Kukullave dhe do të aplikojë një konfigurim të ri të manifestit.
Por gjithashtu, ju mund të aplikoni manifestin e kukullave manualisht nga makina e Agjentit të Kukullave.
Kthehuni te agjenti i serverit të terminalit dhe ekzekutoni komandën e mëposhtme për të aplikuar manualisht manifestet e kukullave.
puppet agent -t
Kjo do të ekzekutojë manifestin e kukullave në makinën Puppet Agent dhe do të instalojë LEMP Stack përmes manifesteve të kukullave lemp.
Më poshtë është rezultati që do të merrni.
Tani ekzekutoni komandën e mëposhtme për të verifikuar çdo shërbim Nginx, MariaDB dhe PHP-FPM.
sudo systemctl status nginx
sudo systemctl status mariadb
sudo systemctl status php7.4-fpmJu duhet të shihni se çdo shërbim është aktiv dhe funksionon.
Tani hapni shfletuesin tuaj të internetit dhe shkruani adresën IP të nyjës tuaj të agjentit në shiritin e adresave. Dhe duhet të shihni skedarin e personalizuar index.html më poshtë.
Tani keni aplikuar me sukses vendosjen e LEMP Stack në makinën Agent duke përdorur manifestet e Kukullave.
konkluzioni
urime! Tani keni instaluar me sukses Serverin dhe Agjentin e Kukullave në Debian 11 Bullseye. Gjithashtu, mësuat se si të krijoni manifestet e para të Kukullave për instalimin e LEMP Stack.
ONë hapin tjetër, mund të jetë interesante të konfiguroni një nyje tjetër dhe të krijoni një manifest më kompleks të Kukullave për vendosjet tuaja.