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.lanserver-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.lan

    Ruani 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 -c3

    Në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 $PATH

    Opsionale, 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 ~/.bashrc

    Tani 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 status

    Më 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 server

    Tani 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 $PATH

    Një 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 ~/.bashrc

    Tani 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 agent

    Verifikoni 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 puppet

    Më 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.lan

    Ju 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.pp

    Kopjoni 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.pp

    Pë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-fpm

    Ju 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.