GNU/Linux >> Znalost Linux >  >> Debian

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

Když přemýšlíte o nástroji pro správu konfigurace, vyskočí vám na mysl Puppet. Puppet je open source nástroj pro správu konfigurace, který vám pomůže nasadit a spravovat konfigurace stovek klientských systémů z centrálního umístění.

Puppet usnadňuje život správcům systému tím, že zkracuje čas strávený opakovanými úkoly a umožňuje jim pracovat na jiných produktivních dílech a také zajišťuje, že veškerá konfigurace je konzistentní v rámci infrastruktury.

Puppet je k dispozici pro Linux, Mac, BSD, Solaris a počítačové systémy založené na Windows, vydaný pod licencí Apache, napsaný v jazyce „Ruby“.

Tato příručka vám pomůže nainstalovat Puppet Server na Ubuntu 18.04 / Ubuntu 16.04 a Debian 9.

Architektura

Agent / Master

V této architektuře jeden nebo více serverů spouští loutkovou hlavní aplikaci a aplikace loutkového agenta běží na spravovaných uzlech (klientských serverech), obvykle jako služba na pozadí.

Loutkář odešle fakta loutkáři a vyžádá si katalog v daném intervalu. Loutkář sestaví a vrátí katalog konkrétního uzlu pomocí zdrojů informací, ke kterým má přístup.

Samostatná architektura

V této architektuře klientský uzel spouští aplikaci loutkové aplikace, obvykle jako úlohu cron.

Životní prostředí

Zde nakonfigurujeme loutku v architektuře master/agent a použijeme dva systémy, jak je uvedeno níže.

Puppet Master

Název hostitele: server.itzgeek.local

IP adresa: 192.168.1.10

Loutkový klient

Název hostitele: client.itzgeek.local

IP adresa: 192.168.1.20

Předpoklady

Nainstalovat NTP

Čas musí být na loutkovém mistrovi nastaven přesně, protože bude fungovat jako certifikační autorita pro podepisování certifikátů přicházejících z klientských uzlů. K tomuto účelu použijeme NTP.

Nainstalujte balíček NTP a proveďte synchronizaci času s upstream servery NTP.

sudo apt update
sudo apt install -y ntp ntpdate
sudo ntpdate -u 0.ubuntu.pool.ntp.org

Časové pásmo

Ujistěte se, že všechny uzly jsou ve stejném časovém pásmu pomocí.

date

Výstup:

Tue Sep 4 22:28:34 EDT 2018

Pokud se vyskytnou nějaké nesrovnalosti, odpovídajícím způsobem je změňte. Seznam dostupných časových pásem.

timedatectl list-timezones

Nastavte časové pásmo pomocí následujícího příkazu.

sudo timedatectl set-timezone America/New_York

DNS

Agent loutky používá název hostitele ke komunikaci s loutkovým serverem. Ujistěte se tedy, že uzel agenta dokáže přeložit název hostitele loutkového serveru. Buď nastavte /etc/hosts soubor nebo server DNS.

Soubor/etc/hosts:

sudo nano /etc/hosts

Přidejte záznam hostitele podobný následujícímu řádku.

192.168.1.10 server.itzgeek.local server

Nastavení úložiště PuppetLabs

Pro instalaci loutkového mistra/agenta bychom vyžadovali zřízení úložiště loutek na všech uzlech.

### Ubuntu 18.04 ###

wget https://apt.puppetlabs.com/puppet6-release-bionic.deb
sudo dpkg -i puppet6-release-bionic.deb
sudo apt update

### Ubuntu 16.04 ###

wget https://apt.puppetlabs.com/puppet6-release-xenial.deb
sudo dpkg -i puppet6-release-xenial.deb
sudo apt update

### Debian 9 ###

wget https://apt.puppetlabs.com/puppet6-release-stretch.deb
sudo dpkg -i puppet6-release-stretch.deb
sudo apt update

Na Ubuntu 18.04 povolte vesmírné úložiště, které obsahuje balíčky nezbytné pro Puppet Server.

Instalovat loutkový server

Puppet Server je serverový software, který běží na loutkovém master uzlu. Nainstalujte server Puppet pomocí níže uvedeného příkazu.

sudo apt install -y puppetserver

Loutkový server je nyní nainstalován, službu loutkového serveru zatím nespouštějte.

Konfigurace loutkového serveru

Přidělení paměti (volitelné)

Ve výchozím nastavení je Puppet Server JVM nakonfigurován tak, aby používal 2 GB RAM. Vždy můžete přizpůsobit využití paměti v závislosti na tom, kolik paměti má váš hlavní uzel; ujistěte se, že to stačí pro správu všech připojených uzlů.

Chcete-li změnit hodnotu přidělení paměti, upravte níže uvedený soubor.

sudo nano /etc/default/puppetserver

Změňte hodnotu zobrazenou níže.

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"

Konfigurace loutky

Jednoduché konfigurace

Puppet Server nevyžaduje žádnou konfiguraci a můžete jednoduše spustit službu puppetserver. Použije výchozí nastavení.

Například:dns_alt_names (loutka, ) .

Puppet vezme váš systémový hostitelský název a loutku jako alternativní názvy DNS pro Puppet Server. V konfiguračním souboru puppet-agent byste tedy museli použít server= nebo server=puppet.

Pokročilé konfigurace (volitelné)

Zde upravím nastavení Puppet Server pro naše požadavky.

sudo nano /etc/puppetlabs/puppet/puppet.conf

Umístěte níže uvedené řádky. Upravte jej podle svého prostředí.

[master]
dns_alt_names = server.itzgeek.local,server

[main]
certname = server.itzgeek.local
server = server.itzgeek.local
environment = production
runinterval = 15m

Spustit loutkový server

Vygenerujte kořenovou a přechodnou podepisovací CA pro loutkový server.

sudo /opt/puppetlabs/bin/puppetserver ca setup

Výstup:

Generation succeeded. Find your files in /etc/puppetlabs/puppet/ssl/ca

Spusťte a povolte Puppet Server.

sudo systemctl start puppetserver
sudo systemctl enable puppetserver

Instalovat Puppet Agent

Nastavte repozitář Puppet na vašem uzlu agenta, jak je uvedeno výše, a poté nainstalujte loutkového agenta pomocí příkazu níže.

sudo apt install -y puppet-agent

Puppet agent také používá některá výchozí nastavení pro připojení k hlavnímu uzlu. Musíme však upravit konfigurační soubor loutky a nastavit informace o mistrovi loutky.

sudo nano /etc/puppetlabs/puppet/puppet.conf
Nastavte server hodnotu podle vašeho hlavního názvu hostitele a názvu certifikátu jako název hostitele vašeho klienta. V mém případě je server server.itzgeek.local a název certifikátu je client.itzgeek.local.
[main]
certname = client.itzgeek.local
server = server.itzgeek.local
environment = production
runinterval = 15m

Hodnotu runinterval můžete změnit závisí na požadavku. Toto řídí, jak dlouho by měl agent čekat mezi dvěma požadavky na katalog.

Hodnotu můžete nastavit v sekundách (30s nebo 30) nebo v minutách (30m) nebo v hodinách (1h).

Spusťte loutkového agenta na uzlu a zajistěte, aby se automaticky spustil při spouštění systému.

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

Získáte výstup jako níže.

Notice: /Service[puppet]/ensure: ensure changed 'stopped' to 'running'
service { 'puppet':
 ensure => 'running',
 enable => 'true',
}

Podepsat certifikát uzlu agenta na hlavním serveru

V nasazení agent/master musí správce schválit žádost o certifikát pro každý uzel agenta, než může tento uzel načíst konfigurace. Agentní uzly si vyžádají certifikáty při prvním pokusu o spuštění.

Přihlaste se do hlavního serveru loutek a spusťte níže uvedený příkaz pro zobrazení nevyřízených požadavků.

sudo /opt/puppetlabs/bin/puppetserver ca list

Výstup:

Requested Certificates:
    client.itzgeek.local   (SHA256)  07:B1:57:5B:DE:AF:9F:4A:DF:4A:D1:CD:C4:2A:F9:9F:D9:76:CD:C5:F1:60:09:9C:B4:BA:76:D6:7B:3C:6F:0D

Spuštěním níže uvedeného příkazu podepište žádost.

sudo /opt/puppetlabs/bin/puppetserver ca sign --certname client.itzgeek.local

Výstup:

Successfully signed certificate request for client.itzgeek.local

Pro podepsání všech požadavků na podpis certifikátu jedním příkazem.

sudo /opt/puppetlabs/bin/puppetserver ca sign --all

V některých případech může být nutné zrušit certifikát konkrétního uzlu, abyste je mohli načíst zpět. Nahraďte s názvem hostitele vašeho klienta.

sudo /opt/puppetlabs/bin/puppetserver ca revoke --certname <AGENT_NAME>

Seznam všech podepsaných a nepodepsaných požadavků. Měli byste běžet na hlavním serveru.

sudo /opt/puppetlabs/bin/puppetserver ca list --all

Výstup:

Signed Certificates:
    server.itzgeek.local   (SHA256)  E5:A4:93:45:EF:82:3B:FF:6E:36:D2:9A:F0:75:15:67:94:33:06:2F:84:9F:D1:45:CE:C6:1C:86:D4:57:B8:25    alt names: ["DNS:server.itzgeek.local", "DNS:server", "DNS:server.itzgeek.local"]
    client.itzgeek.local   (SHA256)  AB:3B:F0:D0:62:69:50:DD:50:45:CE:AD:A5:2C:4F:9E:EB:19:D6:C6:9C:34:A3:C5:CD:84:8F:BA:50:04:4A:D0

Ověřte loutkového agenta

Jakmile Puppet master podepíše váš klientský certifikát, spusťte na klientském počítači následující příkaz a otestujte jej.

sudo /opt/puppetlabs/bin/puppet agent --test

Výstup:

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 '1558888335'
Notice: Applied catalog in 0.02 seconds

Vytvořit manifest

Manifest je datový soubor, který obsahuje konfiguraci klienta, napsanou v deklarativním jazyce Puppet nebo Ruby DSL. Tato část pokrývá základní manifest pro vytvoření adresáře i souboru na klientském počítači.

Hlavní soubor manifestu loutky se nachází na adrese /etc/puppetlabs/code/environments/production/manifests adresář. Vytvořte nový soubor manifestu.

sudo nano /etc/puppetlabs/code/environments/production/manifests/site.pp

Nyní přidejte do manifestu následující řádky, abyste vytvořili adresář v uzlu klienta.

node 'client.itzgeek.local' { # Applies only to mentioned node. If nothing mentioned, applies to all.
     file { '/tmp/puppetdir': # Resource type file
             ensure => 'directory', # Create as a diectory
             owner => 'root', # Ownership
             group => 'root', # Group Name
             mode => '0755', # Directory permissions
          }
}
Pokud proměnná uzlu není nastavena, bude se tento manifest vztahovat na všechny uzly připojené k loutkové předloze.

Nyní spusťte následující příkaz na klientském uzlu a načtěte konfigurace.

sudo /opt/puppetlabs/bin/puppet agent --test

Výstup:

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 '1558888460'
Notice: /Stage[main]/Main/Node[client.itzgeek.local]/File[/tmp/puppetdir]/ensure: created
Notice: Applied catalog in 0.16 seconds

Ověřte, že byl na klientském uzlu vytvořen adresář.

ls -ld /tmp/puppetdir/

Výstup:

drwxr-xr-x 2 root root 4096 May 26 22:03 /tmp/puppetdir/

Pojďme napsat manifest pro vytvoření souboru s obsahem.

node 'client.itzgeek.local' { # Applies only to mentioned node. If nothing mentioned, applies to all.
      file { '/tmp/puppetfile': # Resource type file
            ensure => 'present', # Make sure it exists
            owner => 'root', # Ownership
            group => 'root', # Group Name
            mode => '0644', # File permissions
            content => "This File is created by Puppet Server" # Content of the file
           }
}

Můžete přejít na klientský počítač a načíst katalog, jak je uvedeno v předchozím příkladu, nebo počkat 15 minut, než se katalog automaticky použije.

Závěr

Doufám, že vám tento příspěvek pomohl nainstalovat Puppet Server na Ubuntu 18.04 / Ubuntu 16.04 a Debian 9. Podělte se prosím o svůj názor v sekci komentářů.


Debian
  1. Jak nainstalovat Redis Server na Debian 11

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

  3. Jak nainstalovat MySQL Server na Debian 9

  1. Jak nainstalovat Minecraft Server na Debian 9

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

  3. Jak nainstalovat ProFTPD na Debian 8

  1. Jak nainstalovat SuiteCRM na Debian 9

  2. Jak nainstalovat MySQL 8 na Debian 10

  3. Jak nainstalovat Puppet Server a Agent na Debian 11