Puppet je open-source nástroj pro správu konfigurace, který nám pomáhá automatizovat IT infrastrukturu, včetně zajišťování, správy konfigurace a záplatování stovek klientských systémů z centrálního umístění.
Puppet je k dispozici pro operační systémy Linux, Mac, BSD, Solaris a Windows. Je napsán v jazyce „Ruby“ a je vydán pod licencí Apache,
Tato příručka vám pomůže nainstalovat Puppet na CentOS 8 / RHEL 8.
Architektura
Pupper je nakonfigurován v architektuře agent-master. V této architektuře spravované uzly spouštějí software loutkového agenta jako službu na pozadí. Na druhé straně jeden nebo více serverů provozuje hlavní aplikaci, tj. Loutkový server.
Loutkář pravidelně zasílá fakta loutkáři a požaduje katalog. Master zkompiluje a vrátí katalog daného konkrétního uzlu pomocí zdrojů informací, ke kterým má přístup.
Životní prostředí
Zde nakonfigurujeme loutku v architektuře Server/agent.
Mistr loutek
Název hostitele: loutkaserver.itzgeek.local
IP adresa: 192.168.0.10
Operační systém: CentOS 8
Loutkový klient
Název hostitele: client.itzgeek.local
IP adresa: 192.168.0.20
Operační systém: CentOS 8
Předpoklady
Instalovat NTP
Časování hlavních a klientských uzlů by mělo být přesně synchronizováno se serverem NTP, protože server Puppet bude vystupovat jako certifikační autorita.
Pokud potřebujete nastavit server NTP, pak:
ČTĚTE: Jak nakonfigurovat NTP server pomocí Chrony
Pokud potřebujete nastavit klienta NTP, pak:
ČTĚTE: Jak nakonfigurovat klienta NTP pomocí Chrony
V případě potřeby změňte také systémové časové pásmo.
ČTĚTE :Jak změnit časové pásmo v CentOS 8 / RHEL 8
DNS
Agent Puppet používá název hostitele ke komunikaci se serverem Puppet. Ujistěte se tedy, že uzly agentů mohou přeložit název hostitele loutkového serveru pomocí souboru /etc/hosts nebo serveru DNS.
Instalace a konfigurace loutkového serveru
Puppet Server je serverový software, který běží na hlavním uzlu. Puppet Server řídí konfigurace spravovaných uzlů (puppet-agent).
Přidat úložiště
Abychom mohli nainstalovat Puppet Server, museli bychom přidat loutkové úložiště instalací konfiguračního balíčku úložiště.
rpm -Uvh https://yum.puppet.com/puppet6-release-el-8.noarch.rpm
Instalovat loutku
Nainstalujte server Puppet pomocí níže uvedeného příkazu.
yum install -y puppetserver
Přidělení paměti
Ve výchozím nastavení je Puppet Server nakonfigurován tak, aby používal 2 GB paměti. Alokaci paměti můžete změnit na základě počtu připojených uzlů.
Pro toto demo přidělím 512 MB paměti.
Chcete-li změnit hodnotu přidělení paměti, upravte níže uvedený soubor.
vi /etc/sysconfig/puppetserver
Změňte hodnotu.
Od:
JAVA_ARGS="-Xms2g -Xmx2g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"
Komu:
Pro 512 MB použijte níže uvedená nastavení.
JAVA_ARGS="-Xms512m -Xmx512m -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"
Konfigurovat loutkový server
Konfigurační soubor Puppet se skládá ze dvou částí nazvaných [master] a [main] pro server Pupper a agenta.
vi /etc/puppetlabs/puppet/puppet.conf
Upravte soubor podle vašeho prostředí. Agenti Pupper mohou pro připojení k serveru Pupper použít kterýkoli z názvů hostitelů uvedených v dns_alt_names.
# Pupper Server Configuration [master] dns_alt_names = puppetserver,puppetserver.itzgeek.local # Puppet Agent Configuration [main] certname = puppetserver.itzgeek.local server = puppetserver.itzgeek.local runinterval = 30m
Spustit loutkový server
Vygenerujte kořenovou a přechodnou podepisovací certifikační autoritu pro loutkový server.
puppetserver ca setup
Output: Generation succeeded. Find your files in /etc/puppetlabs/puppet/ssl/caPokud se vám zobrazí příkaz puppetserver:not found, spusťte zdrojový soubor /etc/profile.d/puppet-agent.sh v terminálu nebo se odhlaste z aktuální relace a přihlaste se zpět.
Spusťte a povolte Puppet Server.
systemctl start puppetserver
systemctl enable puppetserver
Firewall
Server Puppet naslouchá na portu 8140. Nakonfigurujte tedy firewall tak, aby se agenti mohli připojit k hlavnímu serveru.
firewall-cmd --permanent --add-port=8140/tcp
firewall-cmd --reload
Instalace a konfigurace Puppet Agent
Přidat úložiště
Abychom mohli nainstalovat agenta Puppet, museli bychom přidat úložiště loutek na všechny uzly.
rpm -Uvh https://yum.puppet.com/puppet6-release-el-8.noarch.rpm
Instalovat agenta
Nainstalujte loutkového agenta na svého klienta pomocí níže uvedeného příkazu.
dnf install -y puppet-agent
Upravte konfigurační soubor loutky a nastavte informace o serveru Puppet.
Nastavte hodnotu serveru podle názvu hostitele serveru Puppet. V mém případě je server puppetserver.itzgeek.local a certname je název hostitele mého klienta (client.itzgeek.local).
vi /etc/puppetlabs/puppet/puppet.conf
Nastavte jako níže.
[main] server = puppetserver.itzgeek.local certname = client.itzgeek.local runinterval = 30m
Hodnotu intervalu běhu můžete změnit v závislosti na požadavku. Toto nastavení řídí, jak dlouho by měl agent čekat mezi dvěma požadavky na katalog. Hodnotu můžete nastavit v sekundách (10 nebo 10s), minutách (10m) a hodinách (1h).
Spusťte loutkového agenta na uzlu a zajistěte, aby se automaticky spustil při spouštění systému.
puppet resource service puppet ensure=running enable=true
Output: Notice: /Service[puppet]/ensure: ensure changed 'stopped' to 'running' service { 'puppet': ensure => 'running', enable => 'true', provider => 'systemd', }Pokud dostanete puppet:command not found, spusťte zdrojový /etc/profile.d/puppet-agent.sh v terminálu nebo se odhlaste z aktuální relace a přihlaste se zpět.
Podepsat certifikát uzlu agenta na hlavním serveru
Musíme schválit žádost o certifikát přicházející z každého uzlu. Agentní uzly si vyžádají certifikáty poprvé, pokud se pokusí spustit.
Spusťte níže uvedený příkaz na uzlu agenta a vytvořte počáteční připojení. Varování/chyby můžete ignorovat.
puppet agent -t
Přihlaste se na server Pupper a spusťte níže uvedený příkaz pro zobrazení nevyřízených požadavků.
puppetserver ca list
Output: Requested Certificates: client.itzgeek.local (SHA256) 06:D8:8E:AE:CA:0B:B1:E7:90:B5:B9:1B:75:3C:95:69:D8:EF:27:0A:5D:CC:45:BB:15:34:64:D2:6B:2C:CA:98
Spusťte příkaz puppet cert sign k podepsání požadavku.
puppetserver ca sign --certname client.itzgeek.local
Output: Successfully signed certificate request for client.itzgeek.local
Server Puppet nyní může komunikovat s klientským počítačem a ovládat uzel.
Pokud máte od uzlů více požadavků na podpis, můžete všechny požadavky podepsat jedním příkazem.
puppetserver ca sign --all
Někdy může být nutné zrušit certifikát konkrétního uzlu, abyste je mohli přečíst zpět.
Nahraďte
puppetserver ca revoke --certname AGENT_NAME
Pomocí níže uvedeného příkazu můžete vypsat všechny podepsané a nepodepsané požadavky.
puppetserver ca list --all
Output: Signed Certificates: puppetserver.itzgeek.local (SHA256) E6:2C:6C:1E:9B:C6:AA:D9:84:09:F3:67:45:1B:36:C6:1F:FB:46:5F:92:64:37:19:E3:74:0C:0D:29:D5:C5:F6 alt names: ["DNS:puppetserver.itzgeek.local", "DNS:puppetserver", "DNS:puppetserver.itzgeek.local"] authorization extensions: [pp_cli_auth: true] client.itzgeek.local (SHA256) EF:D8:1A:F2:E9:56:A3:1F:DA:A9:8D:9B:71:02:D8:52:F1:44:98:92:A7:5F:DE:FC:5F:55:37:97:EC:9C:9A:96
Ověřit klienta loutky
Jakmile Puppet Server podepíše váš klientský certifikát, spusťte na klientském počítači následující příkaz a otestujte jej.
puppet agent --test
Output: Info: Using configured environment 'production' Info: Retrieving pluginfacts Info: Retrieving plugin Info: Retrieving locales Info: Caching catalog for client.itzgeek.local Info: Applying configuration version '1591351483' Notice: Applied catalog in 0.01 seconds
Závěr
To je Al. Doufám, že jste se naučili, jak nainstalovat Puppet na CentOS 8 / RHEL 8. V dalším čtení se dozvíte, jak vytvořit jednoduchý soubor manifestu pro vytvoření souboru a adresáře na klientském uzlu. Podělte se o svůj názor v sekci komentářů.