GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Wie installiere und konfiguriere ich Puppet 4 unter CentOS und Ubuntu? [Meister und Agent]

Puppet, ein allgemein bekanntes Konfigurationsverwaltungstool für Unix- und Windows-basierte Systeme, mit dem ein Administrator sich wiederholende und fehleranfällige Systemverwaltungsaufgaben einfach automatisieren kann – einschließlich Bereitstellung, Installation von Paketen/Software, Konfigurationen und Verwaltung der gesamten Infrastruktur. Puppet gibt es in zwei Varianten – Puppet Enterprise und Puppet Open Source. Wie der Name schon sagt, ist die Enterprise-Version ein kommerzielles Produkt und die Open-Source-Version kann kostenlos heruntergeladen werden. Dieses Tutorial behandelt die Installation und Konfiguration von Open Source Puppet (Version 4) auf CentOS- und Ubuntu-basierten Systemen.

Bevor wir mit der Installation beginnen, lassen Sie uns die Architektur von Puppet verstehen.

Puppet-Master/Agent-Architektur

Puppet funktioniert im Allgemeinen auf der Grundlage des Client/Server-Modells – das ist eine Master/Agent-basierte Architektur, nämlich Puppet Master und Puppet Agent. Der Puppet-Master kontrolliert die Konfigurationsinformationen und verwaltete Puppet-Agent-Knoten fordern ihre eigenen Konfigurationskataloge an. Das folgende Diagramm zeigt den Kommunikationsfluss zwischen den Master- und Agent-Knoten.

Was ist Katalog?

Katalog ist ein Dokument, das Informationen über den gewünschten Zustand eines Systems enthält. Der Puppet-Master kompiliert den Katalog und die Puppet-Agenten wenden diese an.

Puppet-Installationsumgebung

In diesem Tutorial verwende ich zwei Knoten – puppetmaster.test.in (Puppet Master) und puppetagent.test.in (Puppet Agent) (dies sind VMs, die auf OpenStack ausgeführt werden)

Wie installiere und konfiguriere ich Puppet 4?

Schritt 1: Der erste Schritt besteht darin, die Netzwerksichtbarkeit zwischen Master- und Agent-Knoten zu überprüfen. Sie müssen sicherstellen, dass diese Domänen über DNS oder aus der Hosts-Datei aufgelöst werden.

Auf dem Puppet-Master-Knoten:

# 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

Auf Puppet-Agent-Knoten:

# 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

Schritt 2: Installieren Sie NTP

Der Puppet-Master-Knoten fungiert als C Bescheinigung A Authority (CA) und stellen Zertifikate für die Agentenknoten aus. Das bedeutet, dass der Master-Knoten mit der richtigen Zeit synchronisieren muss, um Probleme beim Ausstellen von Zertifikaten an die Agent-Knoten zu vermeiden. Sie müssen also NTP installieren und mit dem Zeitserver Ihrer Wahl synchronisieren.

Überprüfen Sie die verfügbaren Zeitzonen im Master-Knoten:

# timedatectl list-timezones

Stellen Sie die richtige regionale Zeitzone ein:

# timedatectl set-timezone Asia/Kolkata

Installieren Sie NTP:

# yum install ntp

Mit dem Zeitserver Ihrer Wahl synchronisieren:

# ntpdate pool.ntp.org

Öffnen Sie ntp.conf und fügen Sie die Zeitserver Ihrer Wahl hinzu.

# vim /etc/ntp.conf

Speichern und beenden.

NTP-Dienst starten und aktivieren:

# systemctl restart ntpd
# systemctl enable ntpd

Hinweis :Sie können NTP auch auf Agent-Knoten konfigurieren – dazu folgen Sie einfach Schritt 2 auch auf Puppet-Agent-Knoten.

Installieren Sie Puppet Server (auf Master-Knoten)

Der Puppet-Server ist ein Programm, das auf dem Puppet-Master-Knoten ausgeführt wird, und wie im Architekturdiagramm dargestellt, erstellt dieser Dienst einen Katalog und überträgt die Konfigurationen an die Puppet-Agent-Knoten.

Schritt 1: Um Puppet-Dienste zu installieren, müssen Sie das Puppet-Sammlungs-Repository aktivieren oder Pakete freigeben. Für Yum-basierte Betriebssysteme finden Sie die Pakete unter yum.puppetlabs.com und für Apt-basierte Systeme unter apt.puppetlabs.com .

Auf CentOS verwende ich ein Puppet-Repository basierend auf RPM-Paketen.

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

Auf 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

Installieren Sie das Puppet-Serverpaket:

Auf CentOS:

# yum -y install puppetserver

Auf Ubuntu:

# apt-get install puppetserver

Puppet-Server starten:

# systemctl start puppetserver

(oder)

# service puppetserver start

Start des Puppet-Servers während des Systemstarts aktivieren

# systemctl enable puppetserver

(oder)

# chkconfig puppetserver on

Puppet Agent installieren (auf Agentenknoten)

Wir werden den Puppet-Agent-Dienst auf den Agent-Knoten installieren, und dies sind die Knoten, die den Katalog vom Puppet-Master-Knoten empfangen und diesen anwenden.

Puppet-Sammlungs-Repository aktivieren:

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

Auf 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

Puppet Agent installieren:

Auf CentOS:

# yum -y install puppet-agent

Auf Ubuntu:

# apt-get install puppet-agent

Puppet Agent starten:

Standardmäßig verweist der Agent auf den Puppet-Master-Knoten als „Puppe“. Außerdem zeigt der folgende Befehl den Hostnamen an, den der Agent verwenden wird, um sich mit dem Master zu verbinden.

# /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',
 }

Hinweis :Suchen Sie nach dem Server Einstellung in puppet.conf um den Hostnamen des Puppet Masters zu ändern.

Hinweis :Standardmäßig wird Puppet unter /opt/puppetlabs installiert Ordner.

Zertifikat für den Agentenknoten bei der Zertifizierungsstelle anfordern

Der Puppet-Masterknoten fungiert als Zertifizierungsstelle, die das Zertifikat der Agentenknoten signiert.

# /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

Auf dem Puppet-Master-Knoten – Signieren Sie die Zertifikatsanforderung des Agenten

Listen Sie die aktuellen Zertifikatsanforderungen auf:

# /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

Unterschreiben Sie das Zertifikat:

# /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'

Alle signierten Anfragen anzeigen:

# /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")

Und du bist fertig! Ihre erste Puppet-Infrastruktur ist fertig.

Lassen Sie uns Puppet testen

Puppet verwendet ein Tool namens Facter um Informationen (Fakten) über die Puppet Agents zu sammeln. Standardmäßig werden Informationen wie Name des Betriebssystems, Version, Hostname, IP-Adresse, SSH-Schlüssel usw. gesammelt. Sie können aber auch benutzerdefinierte Fakten hinzufügen, auf die ich in einem separaten Artikel eingehen werde.

Wie nützlich sind Fakten?

Beim Erstellen einer Konfigurationsvorlage möchten Sie möglicherweise automatisch einen Fakt (z. B. die IP-Adresse eines Agentenknotens) abrufen und an der entsprechenden Stelle ausfüllen. Ebenso möchten Sie vielleicht einen Hostnamen eines Agentenknotens lesen und ihn in der Konfigurationsvorlage verwenden.

Der folgende Befehl (auf dem Master-Knoten ausführen) listet alle gesammelten Fakten eines Agenten-Knotens auf.

# /opt/puppetlabs/puppet/bin/facter

Beispielausgabe:

:::::::::::::::::::::::::::::::
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
}
:::::::::::::::::::::::::::::::::::::::::

Das ist es! Jetzt müssen Sie Manifeste und Module verstehen, um Puppet effektiv zu nutzen .


Ubuntu
  1. So installieren und konfigurieren Sie Redis unter Ubuntu 18.04

  2. So installieren und konfigurieren Sie Redmine unter Ubuntu 18.04

  3. So installieren und konfigurieren Sie Samba unter Ubuntu 18.04

  4. Installieren Sie Puppet Master und Agent auf Ubuntu 20.04

  5. So installieren Sie Puppet Master und Client in Ubuntu 14.04

Installieren und konfigurieren Sie Puppet unter CentOS 7 / RHEL 7

So installieren und konfigurieren Sie OpenVAS 9 unter Ubuntu

So installieren und konfigurieren Sie Redis in Ubuntu 20.04

So installieren und konfigurieren Sie Redis unter CentOS 8

So installieren und konfigurieren Sie Neo4j unter Ubuntu 20.04

So installieren und konfigurieren Sie Smartctl unter CentOS/RHEL 8 und Ubuntu 20.04