GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat a nakonfigurovat Puppet 4 na CentOS a Ubuntu? [Mistr a agent]

Puppet, populárně známý nástroj pro správu konfigurace pro systémy založené na Unixu a Windows, který umožňuje správci snadno automatizovat opakující se úlohy správy systému náchylné k chybám – což zahrnuje zřizování, instalaci balíčků/softwaru, konfigurace a správu celé infrastruktury. Puppet přichází ve dvou variantách – Puppet Enterprise a Puppet open source. Jak název napovídá, podniková verze je komerční produkt a verze s otevřeným zdrojovým kódem je ke stažení zdarma. Tento tutoriál se bude zabývat tím, jak nainstalovat a nakonfigurovat open source Puppet (verze 4) na systémech založených na CentOS a Ubuntu.

Než začneme s instalační procedurou, pojďme pochopit architekturu loutky.

Puppet Master/Agent Architecture

Puppet obecně funguje na základě modelu Klient/Server – to je architektura založená na Master/Agent, konkrétně Puppet Master a Puppet Agent. Puppet master řídí informace o konfiguraci a spravované uzly Puppet Agent vyžadují své vlastní konfigurační katalogy. Níže uvedený diagram znázorňuje tok komunikace mezi master a agentními uzly.

Co je katalog?

Katalog je dokument, který obsahuje informace o požadovaném stavu systému. Mistr loutek sestaví katalog a agenti loutek je použijí.

Prostředí instalace loutky

V tomto tutoriálu budu používat dva uzly – puppetmaster.test.in (Puppet Master) a puppetagent.test.in (Puppet Agent) (jsou to virtuální počítače běžící na OpenStacku)

Jak nainstalovat a nakonfigurovat Puppet 4?

Krok 1: Prvním krokem je zkontrolovat viditelnost sítě mezi hlavním uzlem a uzlem agenta. Budete muset zajistit, aby byly tyto domény vyřešeny pomocí DNS nebo ze souboru hostitelů.

V uzlu Puppet Master:

# ping puppetagent
 PING puppetagent.test.in (10.180.141.126) 56(84) bytes of data.
 64 bytes from puppetagent.test.in (10.180.141.126): icmp_seq=1 ttl=64 time=0.347 ms
 --- puppetagent.test.in ping statistics ---
 1 packets transmitted, 1 received, 0% packet loss, time 0ms
 rtt min/avg/max/mdev = 0.347/0.347/0.347/0.000 ms

Na uzlu Puppet Agent:

# ping puppetmaster
 PING puppetmaster.test.in (10.180.141.125) 56(84) bytes of data.
 64 bytes from puppetmaster.test.in (10.180.141.125): icmp_seq=1 ttl=64 time=0.711 ms
 64 bytes from puppetmaster.test.in (10.180.141.125): icmp_seq=2 ttl=64 time=0.316 ms
 --- puppetmaster.test.in ping statistics ---
 2 packets transmitted, 2 received, 0% packet loss, time 1000ms
 rtt min/avg/max/mdev = 0.316/0.513/0.711/0.198 ms

Krok 2: Nainstalujte NTP

Uzel Puppet Master bude fungovat jako C certifikovat A orgán (CA) a vydávat certifikáty pro uzly agentů. Znamená to, že hlavní uzel se musí synchronizovat se správným časem, aby se předešlo problémům při vydávání certifikátů uzlům agentů. Musíte tedy nainstalovat NTP a synchronizovat jej s časovým serverem dle vašeho výběru.

Zkontrolujte dostupná časová pásma v hlavním uzlu:

# timedatectl list-timezones

Nastavte správné regionální časové pásmo:

# timedatectl set-timezone Asia/Kolkata

Instalovat NTP:

# yum install ntp

Synchronizace s časovým serverem dle vašeho výběru:

# ntpdate pool.ntp.org

Otevřete ntp.conf a přidejte časové servery dle vašeho výběru.

# vim /etc/ntp.conf

Uložte a ukončete.

Spuštění a povolení služby NTP:

# systemctl restart ntpd
# systemctl enable ntpd

Poznámka :Můžete také nakonfigurovat NTP na uzlech agenta – Chcete-li to provést, postupujte podle kroku 2 také v uzlech Puppet Agent.

Instalovat loutkový server (na hlavní uzel)

Puppet server je program, který běží na Puppet master node a jak je znázorněno na schématu architektury, tato služba vytvoří katalog a předá konfigurace do uzlů Puppet agentů.

Krok 1: Chcete-li nainstalovat služby Puppet, musíte povolit úložiště kolekce Puppet nebo uvolnit balíčky. Pro operační systémy založené na Yum najdete balíčky na yum.puppetlabs.com a pro systémy založené na Apt na apt.puppetlabs.com .

Na CentOS budu používat loutkové úložiště založené na balíčcích rpm.

# rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm
puppetlabs-release-pc1-1.0.0-2.el################################# [100%]

V Ubuntu:

# wget https://apt.puppetlabs.com/puppetlabs-release-pc1-xenial.deb
# dpkg -i puppetlabs-release-pc1-xenial.deb
Selecting previously unselected package puppetlabs-release-pc1.
(Reading database ... 205725 files and directories currently installed.)
Preparing to unpack puppetlabs-release-pc1-xenial.deb ...
Unpacking puppetlabs-release-pc1 (1.0.0-2xenial) ...
Setting up puppetlabs-release-pc1 (1.0.0-2xenial) ...
# apt-get update

Instalovat balíček serveru Puppet:

V systému CentOS:

# yum -y install puppetserver

V Ubuntu:

# apt-get install puppetserver

Spustit loutkový server:

# systemctl start puppetserver

(nebo)

# service puppetserver start

Povolte spuštění loutkového serveru během spouštění systému

# systemctl enable puppetserver

(nebo)

# chkconfig puppetserver on

Instalace Puppet Agent (na uzlech Agent)

Nainstalujeme službu Puppet Agent na uzly agentů a toto jsou uzly, které přijímají katalog z hlavního uzlu Puppet a aplikují je.

Povolit úložiště sbírky loutek:

# rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm

V Ubuntu:

# wget https://apt.puppetlabs.com/puppetlabs-release-pc1-xenial.deb
# dpkg -i puppetlabs-release-pc1-xenial.deb
Selecting previously unselected package puppetlabs-release-pc1.
(Reading database ... 205725 files and directories currently installed.)
Preparing to unpack puppetlabs-release-pc1-xenial.deb ...
Unpacking puppetlabs-release-pc1 (1.0.0-2xenial) ...
Setting up puppetlabs-release-pc1 (1.0.0-2xenial) ...
$ sudo apt-get update

Instalovat Puppet Agent:

V systému CentOS:

# yum -y install puppet-agent

V Ubuntu:

# apt-get install puppet-agent

Spustit Puppet Agent:

Ve výchozím nastavení bude agent odkazovat na hlavní uzel Puppet jako „loutka“. Níže uvedený příkaz také zobrazí název hostitele, který bude agent používat pro připojení k Master.

# /opt/puppetlabs/puppet/bin/puppet agent --configprint server
puppet
# /opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true
 Notice: /Service[puppet]/ensure: ensure changed 'stopped' to 'running'
 service { 'puppet':
 ensure => 'running',
 enable => 'true',
 }

Poznámka :Vyhledejte server nastavení v puppet.conf změnit název hostitele Puppet Master.

Poznámka :Ve výchozím nastavení bude Puppet nainstalován pod /opt/puppetlabs složka.

Požádejte certifikační autoritu o certifikát pro uzel Agent

Hlavní uzel Puppet bude fungovat jako certifikační autorita, která podepíše certifikát uzlů agentů.

# /opt/puppetlabs/puppet/bin/puppet agent -t
 Info: Caching certificate for ca
 Info: csr_attributes file loading from /etc/puppetlabs/puppet/csr_attributes.yaml
 Info: Creating a new SSL certificate request for puppetagent.test.in
 Info: Certificate Request fingerprint (SHA256): BF:E9:8B:85:ED:61:B4:D5:61:2E:F2:C4:0B:0A:24:A3:D5:17:B5:E3:B4:54:53:4F:C7:39:7F:FE:49:1B:AF:4A
 Info: Caching certificate for ca
 Exiting; no certificate found and waitforcert is disabled

Na uzlu Puppet Master – podepište žádost o certifikát agenta

Seznam aktuálních žádostí o certifikát:

# /opt/puppetlabs/puppet/bin/puppet cert list
  "puppetagent.test.in" (SHA256) BF:E9:8B:85:ED:61:B4:D5:61:2E:F2:C4:0B:0A:24:A3:D5:17:B5:E3:B4:54:53:4F:C7:39:7F:FE:49:1B:AF:4A

Podepište certifikát:

# /opt/puppetlabs/puppet/bin/puppet cert sign puppetagent.test.in
Notice: Signed certificate request for puppetagent.test.in
Notice: Removing file Puppet::SSL::CertificateRequest puppetagent.test.in at '/etc/puppetlabs/puppet/ssl/ca/requests/puppetagent.test.in.pem'

Zobrazit všechny podepsané požadavky:

# /opt/puppetlabs/puppet/bin/puppet cert list --all
+ "puppetagent.test.in"  (SHA256) 0F:41:D0:67:78:BB:7B:48:F8:4B:10:10:C4:F9:FD:DD:46:19:34:4B:BE:4D:6F:4B:2F:45:57:86:33:C2:BC:45
+ "puppetmaster.test.in" (SHA256) 4A:F3:F7:C0:81:7D:76:49:77:31:81:B1:70:50:AE:EE:F9:49:95:22:B0:24:0C:08:C3:5E:30:E6:29:75:28:07 (alt names: "DNS:puppet", "DNS:puppetmaster.test.in")

A máte hotovo! Vaše první loutková infrastruktura je připravena.

Pojďme otestovat loutku

Puppet používá nástroj zvaný Facter shromažďovat informace (fakta) o loutkových agentech. Ve výchozím nastavení se shromažďují informace, jako je název operačního systému, verze, název hostitele, IP adresa, klíče SSH atd. Ale umožňuje vám také přidávat vlastní fakta, o kterých budu diskutovat v samostatném článku.

Jak jsou fakta užitečná?

Při vytváření konfigurační šablony můžete chtít automaticky načíst fakt (řekněme IP adresu uzlu agenta) a vyplnit na příslušném místě. Podobně můžete chtít přečíst název hostitele uzlu agenta a použít jej v konfigurační šabloně.

Níže uvedený příkaz (spusťte jej na hlavním uzlu) vypíše všechna shromážděná fakta o uzlu Agent.

# /opt/puppetlabs/puppet/bin/facter

Ukázkový výstup:

:::::::::::::::::::::::::::::::
partitions => {
/dev/vda1 => {
filesystem => "xfs",
mount => "/",
size => "39.99 GiB",
size_bytes => 42943138304,
uuid => "6c8f1327-a7c0-40a2-8bb3-89ea95a69d82"
}
}
path => /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
processors => {
count => 2,
isa => "x86_64",
models => [
"Intel Core Processor (Haswell, no TSX)",
"Intel Core Processor (Haswell, no TSX)"
],
physicalcount => 2
}
:::::::::::::::::::::::::::::::::::::::::

A je to! Nyní musíte porozumět Manifestům a modulům, abyste mohli Puppet efektivně používat .


Ubuntu
  1. Jak nainstalovat a nakonfigurovat Redis na Ubuntu 18.04

  2. Nainstalujte Puppet Master a Agent na Ubuntu 20.04

  3. Jak nainstalovat Puppet master a klienta v Ubuntu 14.04

  1. Jak nainstalovat a nakonfigurovat Redmine na Ubuntu 18.04

  2. Jak nainstalovat a nakonfigurovat Sambu na Ubuntu 18.04

  3. Jak nainstalovat a nakonfigurovat Redis na Ubuntu 20.04

  1. Jak nainstalovat a nakonfigurovat Jenkins na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat Askbot na Ubuntu 16.04

  3. Jak nainstalovat a nakonfigurovat MongoDB na Ubuntu 14.04