GNU/Linux >> Znalost Linux >  >> Debian

Jak nainstalovat Puppet Server a Agent na Debian 11

Puppet je centralizovaný nástroj pro správu konfigurace a automatizaci. DevOps vytváří správu konfigurace pro nasazení serverů a aplikací a veškerá konfigurace pro automatizaci je uložena na centrálním „loutkovém serveru“. Poté uzly „Agent“ vytáhnou novou konfiguraci z „Puppet Server“ a použijí definovaný stav.

Všechna spojení mezi uzly „Puppet Server“ a „Agent“ jsou ve výchozím nastavení šifrována pomocí SSL /TLS certifikát. Puppet používá k popisu konfigurace systému jazyk DSL (Domain Specific Language) a je podobný syntaxi Ruby.

V této příručce nainstalujete a nakonfigurujete Puppet server a agenta na Debian 11 Bullseye. Nainstalujete server Puppet na server se jménem hostitele 'puppet-server' a agenta Puppet na server s názvem hostitele 'agent'. Nakonec vytvoříte první loutkové manifesty pro instalaci základního zásobníku LEMP na uzel 'agent'.

Předpoklad

  • Budete potřebovat dva různé servery Debian 11.
    • loutkový server ' s IP adresou '192.168.5.100 ' a fqdn 'loutkový-server.localdomainl.lan '.
    • Agent ' uzel s IP adresou '192.168.5.150 ' a fqdn 'agent.localdomain.lan '.
  • Budete také potřebovat uživatele root nebo uživatele s právy root/sudo.

Nastavení FQDN

Nejprve nastavíte plně kvalifikovaný název domény (FQDN) a soubor '/etc/hosts' na 'puppet-server' i 'agent'. Tím zajistíte, že oba servery budou moci komunikovat s názvem místní domény.

Chcete-li nastavit FQDN, spusťte 'hostnamectl ' níže.

Spusťte následující příkaz a nastavte fqdn 'puppet-server.localdomain.lan ' na 'loutkovém serveru '.

hostnamectl set-hostname puppet-server.localdomain.lan

Spusťte následující příkaz a nastavte fqdn 'agent.localdomain.lan ' u 'agenta ' uzel.

hostnamectl set-hostname agent.localdomain.lan

Dále upravte soubor '/etc/hosts ' pomocí editoru vim, jak je uvedeno níže.

sudo vim /etc/hosts

Zkopírujte a vložte následující konfiguraci.

192.168.5.100   puppet-server.localdomain.lan
192.168.5.150   agent.localdomain.lan

Uložte soubor a ukončete.

Nakonec spusťte 'ping ' níže pro ověření spojení mezi 'loutkovým serverem “ a „agent '.

ping puppet-server.localdomain.lan -c3
ping agent.localdomain.lan -c3

Pokud je vaše konfigurace správná, uvidíte následující výstup. 'loutkový-server.localdomain.lan ' je vyřešen na server '192.168.5.100 “ a „agent.localdomain.lan ' je vyřešen na uzel agenta '192.168.5.150 '.

Přidání úložiště loutek

Ve výchozím nastavení Puppelabs poskytuje balíčky úložiště pro různé distribuce Linuxu, včetně nejnovějšího Debian 11 Bullseye. V tomto kroku přidáte a nainstalujete repozitář Puppet do 'puppet-server' i 'agent'. V době psaní tohoto článku je nejnovější verze Puppet v7.x.

Stáhněte si balíček úložiště pomocí 'wget ' níže.

wget https://apt.puppet.com/puppet7-release-bullseye.deb

Dále nainstalujte deb soubor 'puppet7-release-bullseye.deb ' pomocí 'dpkg ' níže.

sudo dpkg -i puppet7-release-bullseye.deb

Po dokončení instalace spusťte 'apt ' níže pro aktualizaci a aktualizaci indexu balíčků Debianu.

sudo apt update

Nyní jste připraveni nainstalovat balíčky Puppet.

Instalace loutkového serveru

V tomto kroku nainstalujete balíček Puppet server na 'puppet-server'. V době psaní tohoto článku je nejnovější verze Puppet v7.

Chcete-li nainstalovat Puppet Server, spusťte níže uvedený příkaz apt. Tento příkaz také automaticky nainstaloval další balíčky, jako je Java OpenJDK.

sudo apt install puppetserver

Zadejte „Y ' pro potvrzení instalace.

Po dokončení instalace budete muset načíst prostředí bash pro Puppet Server.

Ve výchozím nastavení ukládá Puppet svůj binární soubor na '/opt/puppetlabs/bin ' adresář. Spuštěním následujícího příkazu použijte nový '$PATH ' proměnná prostředí pro Puppet Server.

source /etc/profile.d/puppet-agent.sh
echo $PATH

Volitelně můžete také použít '$PATH ' proměnnou prostředí spuštěním následujícího příkazu.

echo "export PATH=$PATH:/opt/puppetlabs/bin/" | tee -a ~/.bashrc
source ~/.bashrc

Nyní ověřte '$PATH ' proměnnou prostředí pomocí příkazu níže. Ujistěte se, že adresář '/opt/puppetlabs/bin ' je na seznamu '$PATH ' proměnná prostředí.

echo $PATH

Poté můžete spustit 'loutkový server ' příkaz normálně. Níže si můžete prohlédnout verzi Puppet.

puppetserver -v

Měli byste získat výstup podobný níže uvedenému snímku obrazovky.

Dále upravte konfiguraci loutkového serveru '/etc/default/puppetserver' pomocí editoru vim.

sudo vim /etc/default/puppetserver

Změňte maximální přidělení paměti pro loutkový server. Záleží na vaší systémové paměti. V této příručce máme 2 GB paměti a pro loutkový server přidělíme 1 GB. A použijeme níže uvedenou konfiguraci.

JAVA_ARGS="-Xms1g -Xmx1g"

Uložte konfigurační soubor a ukončete.

Dále znovu načtěte správce systemd, aby se použil nový soubor služby Puppet.

sudo systemctl daemon-reload

Poté spusťte a povolte 'loutkový server ' pomocí níže uvedeného příkazu.

sudo systemctl start enable --now puppetserver

Služba 'loutkový server “ by měl být v provozu. Spuštěním níže uvedeného příkazu ověřte 'puppetserver '.

sudo systemctl status puppetserver

Měli byste vidět výstup podobný níže uvedenému snímku obrazovky.

Kromě toho, pokud ve svém systému používáte firewall UFW, nezapomeňte otevřít port '8140 ', které bude používat loutkový server.

Spusťte níže uvedený příkaz pro spojení všech příchozích připojení z místní podsítě '192.168.5.0/24 ' na loutkový server na portu '8140 '.

sudo ufw allow from 192.168.5.0/24 to any proto tcp port 8140
sudo ufw status

Níže jsou uvedena aktuální pravidla brány firewall UFW, která byste měli vidět.

Konfigurace loutkového serveru

V tomto kroku budete upravovat konfiguraci loutkového serveru. A to lze provést přímou úpravou konfigurace Puppet nebo vygenerováním konfigurace pomocí 'loutky ' příkazového řádku.

Spusťte níže uvedené příkazy 'loutka' a nastavte loutkový server. Tím se nastaví výchozí název domény loutkového serveru a interval běhu v 'hlavní a prostředí a dns_alt_names v sekci '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

Nyní zkontrolujte konfiguraci loutkového serveru '/etc/puppetlabs/puppet/puppet.conf ' pomocí 'kočka ' níže.

cat /etc/puppetlabs/puppet/puppet.conf

Měli byste vidět konfiguraci Puppet Server, jak je uvedeno níže.

Nakonec restartujte službu 'puppetserver ' pro použití nové konfigurace spuštěním 'systemctl ' níže.

sudo systemctl restart puppetserver

V tomto okamžiku jste dokončili instalaci a konfiguraci Puppet Server.

Instalace a konfigurace Puppet Agent

V tomto kroku nainstalujete a nakonfigurujete loutkového agenta na klientském počítači 'agent '.

Před instalací Puppet Agent se ujistěte, že jste dokončili konfiguraci FQDN a přidali repozitář Puppet.

Nyní pojďme nainstalovat a nakonfigurovat Puppet Agent.

Nainstalujte balíček 'puppet-agent ' pomocí příkazu apt níže.

sudo apt install puppet-agent

Po dokončení instalace spusťte níže uvedený příkaz a spusťte a povolte službu Puppet.

sudo /opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true

Měli byste vidět výstup podobný níže uvedenému snímku obrazovky.

Dále budete nastavovat '$PATH ' proměnná prostředí pro přidání binární cesty Puppet '/opt/puppetlabs/bin/ '. To vám umožní spustit 'loutku ' přímo bez úplné cesty k binárnímu souboru.

source /etc/profile.d/puppet-agent.sh
echo $PATH

Dalším způsobem, jak toho dosáhnout, je přidání nového '$PATH ' do proměnné prostředí '~/.bashrc ' konfiguraci pomocí následujícího příkazu.

echo "export PATH=$PATH:/opt/puppetlabs/bin/" | tee -a ~/.bashrc
source ~/.bashrc

Nyní ověřte '$PATH ' konfiguraci proměnné prostředí pomocí následujícího příkazu.

echo $PATH

Měli byste vidět binární cestu Puppet '/opt/puppetlabs/bin ' je přidán do '$PATH ' proměnná prostředí.

Registrace loutkového agenta na loutkovém serveru

Po instalaci Puppet Agenta budete nyní nastavovat Puppet Agent pro jeho registraci na hlavní Puppet Server.

Nejprve se ujistěte, že je loutkový server fqdn dostupný z 'agenta 'stroj. Otestujte to pomocí 'ping ' níže.

ping puppet-server.localdomain.lan -c3

Dále spusťte níže uvedené příkazy a nakonfigurujte Puppet Agent. Tím bude definován název domény loutkového serveru a ca_server na 'agenta '.

puppet config set server puppet-server.localdomain.lan --section agent
puppet config set ca_server puppet-server.localdomain.lan --section agent

Ověřte vygenerovanou konfiguraci Puppet v souboru '/etc/puppetlabs/puppet/puppet.conf'.

cat /etc/puppetlabs/puppet/puppet.conf

Měli byste vidět výstup podobný níže uvedenému snímku obrazovky.

Nyní spusťte níže uvedený příkaz a restartujte službu Puppet a použijte nové změny. Poté ověřte službu Puppet a ujistěte se, že je aktivní a běží.

sudo systemctl restart puppet
sudo systemctl status puppet

Níže je uveden výstup stavu služby Puppet.

Dále spusťte níže uvedený příkaz a zaregistrujte agenta Puppet na serveru Puppet. Tento příkaz vygeneruje nové certifikáty TLS a vytvoří nové požadavky na podepisování certifikátů na server Puppet.

puppet ssl bootstrap

Nyní se přesuňte na terminál Puppet Server a spusťte níže uvedený příkaz ke kontrole požadavků na podepisování certifikátů, poté ověřte podepisování certifikátu pro Puppet Agent 'agent.localdomain.lan '.

puppetserver ca list --all
puppetserver ca sign --certname agent.localdomain.lan

Měli byste vidět zprávu jako „Úspěšně podepsaná žádost o certifikát .... '.

Dále spusťte níže uvedený příkaz a ověřte seznam certifikátů na loutkovém serveru.

puppetserver ca list-all

Měli byste vidět dva různé certifikáty, certifikát pro Puppet Server a Puppet Agent.

Nyní se znovu přesuňte do terminálu Puppet Agent a měli byste vidět zprávy jako „Upozornění:Dokončena inicializace SSL ', což znamená, že požadavky na podpis certifikátu byly úspěšně dokončeny.

V tuto chvíli jste připraveni vytvořit nový první manifest Puppet.

Vytváření prvního loutkového manifestu

V tomto kroku vytvoříte nový první loutkový manifest pro instalaci LEMP Stack (Nginx, MariaDB a PHP-FPM). Všechny manifesty pro produkční prostředí musí být uloženy v adresáři Puppet Server '/etc/puppetlabs/code/environments/production/ '.

Změňte svůj aktuální pracovní adresář na '/etc/puppetlabs/code/environments/production/ '.

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

Dále vytvořte nový adresář rozložení manifestu pro zásobník LEMP v části 'modules ' adresář.

mkdir -p modules/lemp/{manifests,files}

Přejděte na 'modules/lemp ' a vytvořte nový soubor manifestu Puppet 'manifests/init.pp pomocí editoru vim/nano.

cd modules/lemp/
nano manifests/init.pp

Zkopírujte a vložte následující jazyk syntaxe loutky pro instalaci LEMP Stack, zajistěte, aby každá služba LEMP Stack fungovala, a vytvořte nový vlastní soubor 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',
   }

}

Uložte soubor a ukončete.

Dále spusťte níže uvedený příkaz a ověřte soubor manifestu Puppet 'init.pp' .

puppet parser validate init.pp

Pokud jste neviděli žádnou výstupní zprávu, konfigurace je správná.

Nyní vytvořte další konfiguraci 'manifests/site.pp pomocí editoru vim/nano.

cd /etc/puppetlabs/code/environments/production/
vim manifests/sites.pp

Definujte cílového hostitele na 'agent.localdomain.lan a použijte nový manifest loutky 'lemp '.

node 'agent.localdomain.lan' {
    include lemp
}

Uložte soubor a ukončete.

Pomocí následujícího příkazu znovu ověřte konfiguraci manifestu Puppet.

puppet parser validate site.pp

Ověření a použití loutkových manifestů

Nyní jste vytvořili nový první manifest Puppet pro nasazení LEMP Stack. V tomto okamžiku uzel Puppet Agent automaticky synchronizuje všechny manifesty se serverem Puppet Server a použije novou konfiguraci manifestu.

Manifest Puppet však můžete použít také ručně ze stroje Puppet Agent.

Přejděte zpět na 'agent' terminálového serveru a spusťte níže uvedený příkaz pro ruční použití manifestů Puppet.

puppet agent -t

Tím spustíte manifest Puppet na stroji Puppet Agent a nainstalujete LEMP Stack prostřednictvím manifestů Puppet 'lemp '.

Níže je výstup, který získáte.

Nyní spusťte níže uvedený příkaz a ověřte každou službu Nginx, MariaDB a PHP-FPM.

sudo systemctl status nginx
sudo systemctl status mariadb
sudo systemctl status php7.4-fpm

Měli byste vidět, že každá služba je aktivní a běží.

Nyní otevřete webový prohlížeč a do adresního řádku zadejte IP adresu uzlu Agent. A níže byste měli vidět vlastní soubor index.html.

Nyní jste úspěšně použili nasazení LEMP Stack na stroj Agent pomocí manifestů Puppet.

Závěr

gratuluji! Nyní jste úspěšně nainstalovali Puppet Server a Agent na Debian 11 Bullseye. Také jste se naučili, jak vytvořit první manifesty Puppet pro instalaci LEMP Stack.

OV dalším kroku může být zajímavé nastavit další uzel a vytvořit složitější manifest Puppet pro vaše nasazení.


Debian
  1. Jak nainstalovat a nakonfigurovat OpenVPN Server na Debian 10

  2. Jak nainstalovat Redis Server na Debian 11

  3. Jak nainstalovat Puppet 6.x na Ubuntu 18.04 / Ubuntu 16.04 a Debian 9

  1. Jak nainstalovat MySQL 8.0 / 5.7 na Debian 11 / Debian 10

  2. Jak nainstalovat a nakonfigurovat VNC Server na Debian 10

  3. Jak nainstalovat a nakonfigurovat Squid Proxy na Debian 11

  1. Jak nainstalovat a nakonfigurovat VNC na Debian 9

  2. Jak nainstalovat ProFTPD na Debian 8

  3. Jak nainstalovat MySQL Server na Debian 9