Puppet je open-source nástroj pro správu konfigurace a rámec pro automatizaci serverů. Puppet může běžet na operačních systémech podobných Unixu i na systémech Microsoft Windows. Umožňuje vám spravovat a provádět administrativní úkoly a konfiguraci stovek systémů z jednoho hlavního serveru.
V tomto tutoriálu vám ukážu, jak nainstalovat Puppet na CentOS 8. Nainstaluji a nakonfiguruji server CentOS 8 jako loutkový 'master' a druhý jako 'agent'.
Předpoklady
- 2 nebo více serverů CentOS 8
- Oprávnění uživatele root
Co uděláme:
- Předinstalace loutky
- Instalace a konfigurace serveru Puppet
- Nainstalujte a nakonfigurujte Puppet Agent
- Ověřte konfiguraci loutkového agenta
- Vytvořte první loutkový manifest
Krok 1 – Předinstalace loutky
V tomto prvním kroku připravíme hlavní i agentní servery pro instalaci loutky. Nastavíme hostitele a FQDN serveru, nastavíme NTP server a přidáme úložiště loutek pro server CentOS 8.
Nastavit názvy hostitelů
Nejprve nastavíme hostitele a FQDN pro oba servery. Loutkář bude mít název hostitele „master“ s FQDN „master.hakase-labs.io“ a agent bude mít název hostitele „agent01“ s FQDN „agent01.hakase-labs.io“.
Nastavte název hostitele pomocí příkazu 'hostnamectl' níže.
hostnamectl set-hostname hostname
Poté upravte soubor '/etc/hosts' pro konfiguraci serveru FQDN.
vim /etc/hosts
Změňte IP adresu a název domény za vlastní a vložte do něj.
10.5.5.21 master.hakase-labs.io master
10.5.5.22 agent01.hakase-labs.io agent01
Uložit a zavřít.
Nyní restartujte službu s názvem hostitele a použijte nový název hostitele a FQDN.
systemctl restart systemd-hostnamed
A poté zkontrolujte název hostitele a úplný název domény pomocí následujícího příkazu.
hostname
hostname -f
A získáte nový název hostitele a FQDN byl nakonfigurován a aplikován na systém.
Nastavení serveru NTP
Pro server NTP budeme pro naše servery používat „chrony“.
Nainstalujte chrony pomocí příkazu dnf níže.
dnf install chrony
Poté upravte konfiguraci chrony '/etc/chrony.conf' pomocí editoru vim.
vim /etc/chrony.conf
Nyní změňte server fondu za nejbližší fond ve vaší zemi. Dostupné NTP fondu můžete zkontrolovat pomocí 'https://www.pool.ntp.org/zone/COUNTRYID'.
Zkopírujte všechny dostupné NTP servery vaší země a vložte je do souboru 'chrony.conf', jak je uvedeno níže.
server 0.id.pool.ntp.org iburst
server 1.id.pool.ntp.org iburst
server 2.id.pool.ntp.org iburst
server 3.id.pool.ntp.org iburst
Uložit a zavřít.
Nyní spusťte službu chronyd a přidejte ji do spouštěcí doby spouštění.
systemctl start chronyd
systemctl enable chronyd
Konfigurace serveru NTP byla dokončena.
Přidat Puppet Repository pro CentOS 8
Pro server loutkového úložiště CentOS 8 jej můžete nainstalovat ručně pomocí příkazu rpm, jak je uvedeno níže.
sudo rpm -Uvh https://yum.puppet.com/puppet6-release-el-8.noarch.rpm
Poté zkontrolujte všechna dostupná úložiště v systému pomocí příkazu dnf níže.
dnf repolist
A dostanete, že úložiště loutek bylo přidáno do systému CentOS 8.
Zakázat SELinux
Chcete-li deaktivovat SELinux, můžete upravit konfiguraci '/etc/sysconfig/selinux' pomocí editoru vim.
vim /etc/sysconfig/selinux
Nyní změňte konfiguraci hodnoty 'SELINUX' na "disabled".
SELINUX=disabled
Uložte a zavřete a poté restartujte server.
sudo reboot
Jakmile se znovu přihlásíte, zkontrolujte stav SELinux pomocí následujícího příkazu.
sestatus
A získáte stav SELinux zakázán.
Krok 2 – Instalace a konfigurace Puppetserver
V tomto kroku nainstalujeme a nakonfigurujeme loutkový server na hlavním uzlu.
Nainstalujte puppetserver pomocí příkazu dnf níže.
sudo dnf install puppetserver
Poté musíme upravit 'init settings' pro loutkový server a změnit alokaci paměti v závislosti na RAM, kterou máme.
Upravte nastavení init loutkového serveru, které se nachází v '/etc/sysconfig/puppetserver' pomocí editoru vim.
vim /etc/sysconfig/puppetserver
Nyní změňte konfiguraci 'JAVA_ARGS' pro alokaci paměti v závislosti na vaší RAM.
JAVA_ARGS="-Xms1g -Xmx1g ...."
Uložit a zavřít.
Dále přejděte do adresáře '/etc/puppetlabs' a upravte konfigurační soubor loutky 'puppet.conf'.
cd /etc/puppetlabs/
vim puppet/puppet.conf
V hlavní konfiguraci definujte alternativní názvy DNS s FQDN hlavního serveru.
[master]
....
dns_alt_names=master.hakase-labs.io,puppet
....
Poté definujte konfiguraci hlavního serveru loutky, jak je uvedeno níže.
[main]
certname = master.hakase-labs.io
server = master.hakase-labs.io
environment = production
runinterval = 1h
Uložit a zavřít.
Nyní přidejte službu puppetserver do spouštěcího času spuštění a spusťte službu.
systemctl enable puppetserver
systemctl start puppetserver
Loutkový server běží na serveru CentOS 8 s výchozím portem TCP '8140'.
Přidejte port puppetserver '8140' k firewallu pomocí následujícího příkazu.
firewall-cmd --add-port=8140/tcp --permanent
firewall-cmd --reload
V důsledku toho byla instalace a konfigurace loutkového mistra úspěšně dokončena.
Krok 3 – Instalace a konfigurace Puppet Agent
Po instalaci hlavního serveru loutek 'master.hakase-labs.io' nainstalujeme loutkového agenta na server 'agent01'.
Přihlaste se k serveru 'agent01' a nainstalujte balíček puppet-agent pomocí příkazu dnf níže.
sudo dnf install puppet-agent
Poté přejděte do adresáře '/etc/puppetlabs' a upravte konfigurační soubor 'puppet.conf' pomocí editoru vim.
cd /etc/puppetlabs/
vim puppet/puppet.conf
Změňte konfiguraci 'certname' a 'server' na vlastní a vložte ji do konfigurace.
[main]
certname = agent01.hakase-labs.io
server = master.hakase-labs.io
environment = production
runinterval = 1h
Uložit a zavřít.
Dále spusťte službu loutky a zaregistrujte agenta Puppet na hlavním serveru pomocí následujícího příkazu.
/opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true
A dostanete výsledek, jak je uvedeno níže.
Loutkový agent je nyní v provozu a pokouší se zaregistrovat na serveru Puppet master.
Nyní zpět na hlavní server Puppet a zkontrolujte nevyřízené žádosti o certifikát.
/opt/puppetlabs/bin/puppetserver ca list
A na seznamu získáte certifikát 'agent01.hakase-labs.io'.
Nyní podepište certifikát 'agent01' pomocí příkazu níže.
/opt/puppetlabs/bin/puppetserver ca sign --certname agent01.hakase-labs.io
A loutkový agent je nyní zaregistrován na hlavním serveru.
Krok 4 – Ověřte konfiguraci loutkového agenta
Nyní ověřte konfiguraci loutkového agenta a otestujte spojení mezi loutkovým agentem a mistrem pomocí následujícího příkazu.
/opt/puppetlabs/bin/puppet agent --test
A dostanete výsledek, jak je uvedeno níže.
Výsledkem je, že agent Puppet stáhl konfiguraci z loutkového mistra a aplikoval ji na server bez jakékoli chyby.
Krok 5 – Vytvořte první manifest
V této fázi byla dokončena instalace a konfigurace Puppet pro master a agent.
A v tomto kroku otestujeme naše nastavení vytvořením prvního loutkového manifestu pro instalaci balíčku httpd.
Přejděte do adresáře '/etc/puppetlabs/code/environments/production/manifests' a vytvořte první soubor manifestu loutky 'httpd.pp'.
cd /etc/puppetlabs/code/
cd environments/production/manifests
vim httpd.pp
Vložte následující konfiguraci.
node 'agent01.hakase-labs.io' {
package { 'httpd':
ensure => "installed",
}
service { 'httpd':
ensure => running,
enable => true
}
}
Uložit a zavřít.
Nyní přejděte do uzlu Puppet agent 'agento01' a spusťte následující příkaz.
/opt/puppetlabs/bin/puppet agent --test
A zobrazí se vám výsledek, jak je uvedeno níže.
Agent Puppet stáhl z hlavního serveru Puppet novou konfiguraci pro instalaci balíčku httpd a spustil službu httpd.
V uzlu 'agent01' zkontrolujte stav služby httpd a zkontrolujte port HTTP '80'
systemctl status httpd
netstat -plntu
A získáte službu httpd, která je spuštěna na serveru 'agent01' s výchozím portem HTTP '80'. Balíček httpd byl nainstalován prostřednictvím loutkového manifestu, který jsme vytvořili nahoře.
Výsledkem je, že instalace a konfigurace hlavního serveru Puppet a agenta na serveru CentOS 8 byly úspěšně dokončeny.