GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nainstalovat Puppet 6.x na CentOS 7 / RHEL 7

Puppet je nástroj pro správu konfigurace s otevřeným zdrojovým kódem, který vám pomůže spravovat konfigurace stovek klientských systémů z centrálního umístění.

Puppet usnadňuje administrátorům život tím, že zkracuje čas strávený opakovanými úkoly a umožňuje jim soustředit se na jinou práci a také zajišťuje, že nasazená 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 6.x na CentOS 7 / RHEL 7.

Architektura

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.

Samostatná architektura

V této architektuře má každý spravovaný uzel svou kopii konfiguračních informací a kompiluje svůj katalog. Spouští aplikaci loutkové aplikace jako úlohu cron.

Životní prostředí

Zde nakonfigurujeme loutku v architektuře Server/agent.

Puppet Master

Název hostitele: server.itzgeek.local
IP adresa: 192.168.1.10
Operační systém: CentOS 7.6

Loutkový klient

Název hostitele: client.itzgeek.local
IP adresa: 192.168.1.20
Operační systém: CentOS 7.6

Předpoklady

Nainstalovat NTP

Časování hlavních a klientských uzlů by mělo být přesně synchronizováno s upstream časovými servery, protože hlavní server Puppet bude fungovat jako certifikační autorita.

(Pokud je čas nesprávný, může omylem vydat certifikáty agentů ze vzdálené minulosti nebo budoucího data, které ostatní uzly budou považovat za prošlé.)

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

yum -y install ntpdate
ntpdate 0.centos.pool.ntp.org
Ujistěte se, že všechny uzly jsou ve stejném časovém pásmu pomocí datum příkaz. Pokud se vyskytnou nějaké nesrovnalosti, odpovídajícím způsobem je změňte.

ČTĚTE :Jak změnit časové pásmo v CentOS 7 / RHEL 7

DNS

Agent loutky používá název hostitele ke komunikaci s loutkovým serverem. Zajistěte tedy, aby uzly agentů dokázaly přeložit název hostitele loutkového serveru pomocí /etc/hosts soubor nebo server DNS.

Nastavení úložiště loutek

Abychom mohli nainstalovat Puppet Server/Agents, museli bychom přidat úložiště loutek na všechny uzly.

Nastavte úložiště Puppet na hlavním i agentském uzlu.
rpm -Uvh https://yum.puppet.com/puppet6-release-el-7.noarch.rpm

Instalovat loutkový server

Puppet Server je serverový software, který běží na loutkovém master uzlu. Puppetmaster posílá konfigurace do spravovaných uzlů (puppet-agent).

Nainstalujte server Puppet pomocí níže uvedeného příkazu.

yum 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

Ve výchozím nastavení je Puppet Server JVM nakonfigurován tak, aby používal 2 GB paměti. Můžete to změnit v závislosti na tom, kolik paměti je k dispozici na vašem hlavním uzlu; 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.

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"

Vestavěný webový server

Puppet Server používá webový server založený na Jetty zabudovaný do procesu JVM služby. Webový server nemusíte konfigurovat ani povolovat; funguje to po vybalení z krabice. Funguje dobře při zatížení na úrovni produkce.

Nastavení vestavěného webového serveru lze upravit v souboru webserver.conf. Pokud používáte externí CA nebo používáte Puppet Server na nestandardním portu, možná budete muset tento soubor upravit.

Konfigurace loutky

Jednoduché konfigurace

Puppet Server nevyžaduje žádnou konfiguraci. Stačí spustit službu Puppet server. Použije výchozí nastavení.

Výchozí název hostitele Puppet Server (dns_alt_names) je puppet, takže v konfiguračním souboru puppet-agent musíte použít server =puppet.

Chcete-li změnit název hostitele hlavního hostitele loutky, postupujte podle níže uvedeného postupu.

Pokročilé konfigurace (volitelné)

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

vi /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 = 1h

Spustit loutkový server

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

puppetserver ca setup

Výstup:

Generation succeeded. Find your files in /etc/puppetlabs/puppet/ssl/ca
Pokud 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

Puppet Master naslouchá na portu 8140, takže nakonfigurujte firewall tak, aby se spravované uzly mohly připojit k master.

firewall-cmd --permanent --add-port=8140/tcp
firewall-cmd --reload

Instalovat Puppet Agent

Nainstalujte loutkového agenta na svého klienta pomocí níže uvedeného příkazu.

yum 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.

Nastavte server hodnotu podle názvu vašeho hlavního uzlu. V mém případě je server server.itzgeek.local a název certifikátu je název hostitele mého klienta (client.itzgeek.local ).
vi /etc/puppetlabs/puppet/puppet.conf

Nastavte jako níže.

[main]
certname = client.itzgeek.local
server = server.itzgeek.local
environment = production
runinterval = 1h

Hodnotu runinterval můžete změnit závisí na požadavku. Hodnotu můžete nastavit v sekundách (10 nebo 10s), minutách (10m) a hodinách (1h). Toto nastavení řídí, jak dlouho by měl agent čekat mezi dvěma požadavky na katalog.

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

Výstup:

Notice: /Service[puppet]/ensure: ensure changed 'stopped' to 'running'
service { 'puppet':
  ensure => 'running',
  enable => 'true',
}
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

V nasazení agent/master musí správce schválit žádost o certifikát přicházející z každého uzlu, aby mohl načíst konfigurace. Agentní uzly si vyžádají certifikáty poprvé, pokud se pokusí spustit.

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

puppetserver ca list

Výstup:

client.itzgeek.local   (SHA256)  A6:0E:93:51:FF:53:C8:FA:63:70:72:53:B6:1E:1B:A8:49:79:37:7E:57:00:02:AE:32:44:22:BE:97:F5:08:09

Spusťte příkaz puppet cert sign k podepsání požadavku.

puppetserver ca sign --certname client.itzgeek.local

Výstup:

Successfully signed certificate request for client.itzgeek.local

Loutkář 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, aby bylo možné je načíst zpět.

Nahraďte s názvem hostitele vašeho klienta.

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

Výstup:

server.itzgeek.local   (SHA256)  6E:90:94:6F:31:4F:8C:2A:28:90:D5:C0:6D:71:18:65:5E:86:DE:1C:16:9C:7C:30:8F:BF:DA:87:2D:F7:2C:26    alt names: ["DNS:server.itzgeek.local", "DNS:server", "DNS:server.itzgeek.local"]
client.itzgeek.local   (SHA256)  A6:08:36:5C:DB:73:0D:16:BA:5B:0D:72:76:FD:C7:31:DD:87:6F:EC:D4:4F:7A:87:E9:4F:73:70:D0:09:6E:61

Ověřit klienta Puppet

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

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 '1558878523'
Notice: Applied catalog in 0.03 seconds

Vytváření našeho prvního manifestu

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

Hlavní soubor manifestu loutky se nachází na adrese /etc/puppetlabs/code/environments/production/manifests/site.pp.

vi /etc/puppetlabs/code/environments/production/manifests/site.pp

Nyní přidejte do manifestu následující řádky, abyste vytvořili adresář ve spravovaném uzlu.

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

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

puppet agent --test

Výstup:

Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for client.itzgeek.local
Info: Applying configuration version '1472165498'
Notice: /Stage[main]/Main/Node[client.itzgeek.local]/File[/tmp/puppetesttdir]/ensure: created
Notice: Applied catalog in 0.03 seconds

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

[root@client ~]# ls -ld /tmp/puppetesttdir
drwxr-xr-x. 2 root root 6 May 26 09:57 /tmp/puppetesttdir

Udělejme test ještě jednou tak, že napíšeme manifest pro vytvoření souboru s obsahem.

node 'client.itzgeek.local' { # Applies only to mentioned node; if nothing mentioned, applies to all.
file { '/tmp/puppettestfile': # 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"
}
}

Můžete přejít na klientský počítač a načíst katalog, jak je znázorněno v předchozím příkladu, nebo bude agent Puppet pravidelně získávat manifest ze serveru Puppet Server v závislosti na intervalu běhu nastavíte v konfiguračním souboru.

Závěr

Doufám, že jste se naučili, jak nainstalovat Puppet Server a Agent na CentOS 7 / RHEL 7. Také jste se naučili vytvořit jednoduchý soubor manifestu pro vytvoření adresáře na klientském uzlu. Podělte se o svůj názor v sekci komentářů.


Cent OS
  1. Jak nainstalovat DNS server na RHEL 8 / CentOS 8 Linux

  2. Jak nainstalovat Puppet na CentOS 8 / RHEL 8

  3. Jak nainstalovat Puppet na RHEL 8/CentOS 8

  1. Jak nainstalovat poštovní server Postfix na RHEL 8 / CentOS 8

  2. Jak nainstalovat vnc server na RHEL 8 / CentOS 8

  3. CentOS / RHEL 7:Jak nainstalovat GUI

  1. Jak nainstalovat Nextcloud na server RHEL 8 / CentOS 8

  2. Jak nainstalovat OwnCloud na server RHEL 8 / CentOS 8

  3. Jak nainstalovat PostgreSQL server na RHEL 8 / CentOS 8