Puppet je výkonný nástroj pro správu konfigurace s otevřeným zdrojovým kódem, který lze použít k nasazení, konfiguraci, správě a údržbě serveru při vzdáleném přístupu. Puppet je napsán v Ruby a pomáhá vám nasadit a spravovat jeden server – až po tisíce fyzických a virtuálních serverů – to vše z centrálního umístění.
Moduly Puppet jsou kolekce souborů manifestů a dat, které umožňují Puppetu načíst a najít třídy, fakta, funkce, definované typy a úkoly. S moduly Puppet můžete instalovat a aktualizovat balíčky, vytvářet soubory a adresáře a/nebo provádět jakékoli změny konfigurace rychle a snadno. Jeho cílem je provádět a automatizovat téměř jakýkoli úkol, jako je spuštění prostředí LAMP, nastavení virtuálních hostitelů atd.
V tomto tutoriálu si ukážeme, jak vytvořit modul LAMP pro nasazení zásobníku LAMP na stroji Puppet agent, přičemž oba jsou Ubuntu 20.04 VPS. Začněme.
Než začneme
Budete potřebovat:
- Dva virtuální servery Ubuntu 20.04 s nakonfigurovaným Puppet masterem a Puppet agentem.
- Povolen přístup root nebo uživatel s právy sudo.
Začínáme
Nejprve se budete muset přihlásit na svůj server pomocí SSH. Můžete to udělat zadáním tohoto příkazu:
ssh root@IP_Address -p Port_Number
Pokud nepoužíváte uživatele root, nezapomeňte nahradit „root“ svým uživatelským jménem. Změňte „IP_Address“ a „Port_Number“ podle IP adresy vašeho serveru a čísla portu SSH. Výchozí číslo portu je 22.
Jakmile jste přihlášeni, můžete přejít k dalšímu kroku.
Ověřte loutkový server a agenta
Nejprve ověřte službu Puppet spuštěním následujícího příkazu v uzlu Puppet master. Musíme se ujistit, že je služba aktivní a běží:
systemctl status puppetserver
Dále vypište všechny podepsané a nepodepsané požadavky agentů pomocí následujícího příkazu:
/opt/puppetlabs/bin/puppetserver ca list --all
Měli byste vidět následující výstup:
Signed Certificates: puppet-client (SHA256) 58:73:AE:62:04:9E:B8:0F:16:07:83:08:34:4A:00:D2:E6:82:9B:47:2A:00:9F:F4:08:AE:56:A8:E7:1B:6A:31 puppet-master (SHA256) 7F:23:98:18:0E:3F:0F:FD:3E:12:FD:43:A6:50:C2:4C:58:0F:C6:EB:B0:5A:2A:74:6F:D8:A0:95:BC:31:EA:47alt names: ["DNS:puppet-master", "DNS:puppet-master"]authorization extensions: [pp_cli_auth: true]
V uzlu Puppet agent spusťte následující příkaz a otestujte konektivitu mezi oběma uzly.
/opt/puppetlabs/bin/puppet agent --test
Pokud je vše v pořádku, měli byste získat následující výstup:
Info: Using configured environment 'production' Info: Retrieving pluginfacts Info: Retrieving plugin Info: Retrieving locales Info: Caching catalog for puppet-client Info: Applying configuration version '1583136740' Notice: Applied catalog in 0.05 seconds
Vytvořte modul LAMP
Nejprve budete muset vytvořit modul LAMP na hlavním uzlu Puppet. Chcete-li vytvořit modul, musíte vytvořit adresář, jehož název odpovídá názvu vašeho modulu v modules
Puppet a musí obsahovat adresář s názvem manifests
a tento adresář musí obsahovat init.pp
soubor.
Chcete-li to provést, změňte adresář na adresář modulu Puppet a vytvořte adresář s názvem lamp
a poté manifests
adresář v něm:
cd /etc/puppetlabs/code/modules/ mkdir -p lamp/manifests
Dále vytvořte init.pp
soubor, který bude obsahovat třídu Puppet, která odpovídá názvu modulu. Budeme používat nano
k tomu, ale můžete použít libovolný textový editor, který se vám líbí.
nano lamp/manifests/init.pp
Přidejte následující řádky:
class lamp { # execute 'apt-get update' exec { 'apt-update': # exec resource named 'apt-update' command => '/usr/bin/apt-get update' # command this resource will run } # install apache2 package package { 'apache2': require => Exec['apt-update'], # require 'apt-update' before installing ensure => installed, } # ensure apache2 service is running service { 'apache2': ensure => running, } # install mysql-server package package { 'mysql-server': require => Exec['apt-update'], # require 'apt-update' before installing ensure => installed, } # ensure mysql service is running service { 'mysql': ensure => running, } # install php package package { 'php': require => Exec['apt-update'], # require 'apt-update' before installing ensure => installed, } # ensure info.php file exists file { '/var/www/html/info.php': ensure => file, content => '', # phpinfo code require => Package['apache2'], # require 'apache2' package before creating } }
Po dokončení uložte a zavřete soubor.
Vytvořte soubor hlavního manifestu
Manifest je soubor, který obsahuje konfigurace klienta, které lze použít k instalaci zásobníku LAMP na uzel agenta. Hlavní soubor manifestu loutky se nachází v /etc/puppetlabs/code/environments/production/manifests
adresář.
Můžete vytvořit nový soubor manifestu s názvem site.pp
pomocí následujícího příkazu:
nano /etc/puppetlabs/code/environments/production/manifests/site.pp
Přidejte následující řádky:
node default { } node 'puppet-agent' { include lamp }
Uložte a zavřete soubor.
Ve výše uvedeném souboru vám blok uzlů umožňuje zadat kód loutky, který se bude vztahovat pouze na určité uzly agentů. Výchozí uzel se vztahuje na každý uzel agenta, který nemá zadaný blok uzlu.
Zde jsme specifikovali puppet-agent
blok uzlu, který se bude vztahovat pouze na našeho puppet-agent
uzel agenta. Také jsme přidali include lamp
úryvek, aby Puppet používal modul lampy na uzlu agenta.
Otestujte modul LAMP
Nyní budete muset stáhnout konfiguraci LAMP na uzlu agenta z hlavního uzlu.
Na uzlu agenta spusťte následující příkaz, abyste získali konfiguraci LAMP z hlavního uzlu.
/opt/puppetlabs/bin/puppet agent --test
Tím se nainstaluje a nastaví zásobník LAMP na uzlu agenta, jak je vidět níže:
Info: Using configured environment 'production' Info: Retrieving pluginfacts Info: Retrieving plugin Info: Retrieving locales Info: Caching catalog for puppet-agent Info: Applying configuration version '1594188800' Notice: /Stage[main]/Lamp/Exec[apt-update]/returns: executed successfully Notice: /Stage[main]/Lamp/Package[apache2]/ensure: created Notice: /Stage[main]/Lamp/Package[mysql-server]/ensure: created Notice: /Stage[main]/Lamp/Package[php]/ensure: created Notice: /Stage[main]/Lamp/File[/var/www/html/info.php]/ensure: defined content as '{md5}d9c0c977ee96604e48b81d795236619a' Notice: Applied catalog in 73.09 seconds
A s tím je nyní zásobník LAMP nainstalován na váš uzel agenta. Chcete-li to zkontrolovat, otevřete webový prohlížeč a zadejte adresu URL http://agent-ip-address/info.php
. Měli byste vidět svou stránku PHP.
Gratulujeme! úspěšně jste vytvořili modul LAMP na vašem Puppet masteru a úspěšně jste jej nasadili na váš agentský uzel (nebo uzly) pomocí Puppet.
Nasazení těchto změn na uzly agentů je navrženo tak, aby bylo co nejsnazší a co nejautomatizovanější, ale stále musíte nakonfigurovat obě strany a provádět tyto úkoly sami. Pokud používáte jeden z našich plánů Managed Ubuntu VPS, vše, co musíte udělat, je jednoduše požádat náš tým zkušených administrátorů, aby vám nainstaloval cokoli, co potřebujete. Mohou nainstalovat a nastavit cokoli jiného, co byste mohli chtít, kdykoli to chcete, stejně jako provádět jakoukoli údržbu serveru, aniž byste museli cokoli dělat.
Doufáme, že vám tento návod pomohl. Pokud ano, ocenili bychom, kdybyste tento návod sdíleli se svými přáteli prostřednictvím sociálních médií pomocí našich zkratek pro sdílení, nebo nám můžete zanechat komentář, jak instalace probíhala. Děkuji.