GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren Sie Puppet unter CentOS 8 / RHEL 8

Puppet ist ein Open-Source-Konfigurationsmanagement-Tool, das uns hilft, die IT-Infrastruktur zu automatisieren, einschließlich Bereitstellung, Konfigurationsmanagement und Patchen von Hunderten von Client-Systemen von der zentralen Stelle aus.

Puppet ist für die Betriebssysteme Linux, Mac, BSD, Solaris und Windows verfügbar. Es ist in der Sprache „Ruby“ geschrieben und unter der Apache-Lizenz veröffentlicht,

Diese Anleitung hilft Ihnen bei der Installation von Puppet unter CentOS 8 / RHEL 8.

Architektur

Pupper ist in einer Agent-Master-Architektur konfiguriert. In dieser Architektur führen verwaltete Knoten die Puppet-Agent-Software als Hintergrunddienst aus. Andererseits führen ein oder mehrere Server die Master-Anwendung aus, d. h. Puppet-Server.

Der Puppet-Agent sendet periodisch Fakten an den Puppet-Master und fordert einen Katalog an. Der Master kompiliert und gibt den Katalog dieses bestimmten Knotens zurück, indem er die Informationsquellen verwendet, auf die er Zugriff hat.

Umgebung

Hier konfigurieren wir ein Puppet in der Server/Agent-Architektur.

Puppenmeister

Hostname: puppetserver.itzgeek.local

IP-Adresse: 192.168.0.10

Betriebssystem: CentOS 8

Puppet-Client

Hostname: client.itzgeek.local

IP-Adresse: 192.168.0.20

Betriebssystem: CentOS 8

Voraussetzungen

NTP installieren

Das Timing der Master- und Client-Knoten sollte genau mit dem NTP-Server synchron sein, da der Puppet-Server als Zertifizierungsstelle fungiert.

Wenn Sie einen NTP-Server einrichten müssen, dann:

LESEN: So konfigurieren Sie den NTP-Server mit Chrony

Wenn Sie einen NTP-Client einrichten müssen, dann:

LESEN: So konfigurieren Sie den NTP-Client mit Chrony

Ändern Sie bei Bedarf auch die Systemzeitzone.

LESEN :So ändern Sie die Zeitzone in CentOS 8 / RHEL 8

DNS

Der Puppet-Agent verwendet den Hostnamen, um mit dem Puppet-Server zu kommunizieren. Stellen Sie also sicher, dass Agent-Knoten den Hostnamen des Puppet-Servers mit Hilfe der /etc/hosts-Datei oder des DNS-Servers auflösen können.

Puppet-Server installieren und konfigurieren

Puppet Server ist die Serversoftware, die auf dem Masterknoten ausgeführt wird. Puppet Server steuert die Konfigurationen verwalteter Knoten (Puppet-Agent).

Repository hinzufügen

Um den Puppet-Server zu installieren, müssten wir das Puppet-Repository hinzufügen, indem wir das Repository-Konfigurationspaket installieren.

rpm -Uvh https://yum.puppet.com/puppet6-release-el-8.noarch.rpm

Puppet installieren

Installieren Sie den Puppet-Server mit dem folgenden Befehl.

yum install -y puppetserver

Speicherzuordnung

Standardmäßig ist Puppet Server für die Verwendung von 2 GB Arbeitsspeicher konfiguriert. Sie können die Speicherzuweisung basierend auf der Anzahl der damit verbundenen Knoten ändern.

Für diese Demo werde ich 512 MB Arbeitsspeicher zuweisen.

Bearbeiten Sie die folgende Datei, um den Wert der Speicherzuweisung zu ändern.

vi /etc/sysconfig/puppetserver

Ändern Sie den Wert.

Von:

JAVA_ARGS="-Xms2g -Xmx2g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"

An:

Verwenden Sie für 512 MB die folgenden Einstellungen.

JAVA_ARGS="-Xms512m -Xmx512m -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"

Puppet-Server konfigurieren

Die Konfigurationsdatei von Puppet besteht aus zwei Abschnitten namens [master] und [main] für Pupper-Server bzw. Agent.

vi /etc/puppetlabs/puppet/puppet.conf

Ändern Sie die Datei entsprechend Ihrer Umgebung. Pupper-Agenten können jeden der in den dns_alt_names erwähnten Hostnamen verwenden, um sich mit dem Pupper-Server zu verbinden.

# Pupper Server Configuration
[master]
dns_alt_names = puppetserver,puppetserver.itzgeek.local

# Puppet Agent Configuration
[main]
certname = puppetserver.itzgeek.local
server = puppetserver.itzgeek.local
runinterval = 30m

Puppet-Server starten

Generieren Sie die Stamm- und Zwischensignatur-CA für Puppet Server.

puppetserver ca setup
Output:

Generation succeeded. Find your files in /etc/puppetlabs/puppet/ssl/ca
Wenn Sie puppetserver:command not found erhalten, führen Sie source /etc/profile.d/puppet-agent.sh im Terminal aus oder melden Sie sich von der aktuellen Sitzung ab und wieder an.

Starten und aktivieren Sie den Puppet-Server.

systemctl start puppetserver

systemctl enable puppetserver

Firewall

Der Puppet-Server lauscht auf Port 8140. Konfigurieren Sie also die Firewall so, dass sich Agenten mit dem Master verbinden können.

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

firewall-cmd --reload

Puppet-Agent installieren und konfigurieren

Repository hinzufügen

Um den Puppet-Agenten zu installieren, müssten wir das Puppet-Repository auf allen Knoten hinzufügen.

rpm -Uvh https://yum.puppet.com/puppet6-release-el-8.noarch.rpm

Agent installieren

Installieren Sie den Puppet-Agenten auf Ihrem Client mit dem folgenden Befehl.

dnf install -y puppet-agent

Bearbeiten Sie die Puppet-Konfigurationsdatei und legen Sie die Puppet-Serverinformationen fest.

Legen Sie den Serverwert gemäß Ihrem Puppet-Server-Hostnamen fest. In meinem Fall ist der Server puppetserver.itzgeek.local und certname ist mein Client-Hostname (client.itzgeek.local).

vi /etc/puppetlabs/puppet/puppet.conf

Stellen Sie wie unten ein.

[main]
server = puppetserver.itzgeek.local
certname = client.itzgeek.local
runinterval = 30m

Sie können den Wert von runinterval je nach Anforderung ändern. Diese Einstellung steuert, wie lange der Agent zwischen den beiden Kataloganforderungen warten soll. Sie können den Wert in Sekunden (10 oder 10s), Minuten (10m) und Stunden (1h) einstellen.

Starten Sie Puppet Agent auf dem Knoten und lassen Sie ihn beim Systemstart automatisch starten.

puppet resource service puppet ensure=running enable=true
Output:

Notice: /Service[puppet]/ensure: ensure changed 'stopped' to 'running'
service { 'puppet':
  ensure   => 'running',
  enable   => 'true',
  provider => 'systemd',
}
Wenn Sie puppet:command not found erhalten, führen Sie source /etc/profile.d/puppet-agent.sh im Terminal aus oder melden Sie sich von der aktuellen Sitzung ab und wieder an.

Agent-Knotenzertifikat auf Masterserver signieren

Wir müssen eine Zertifikatsanforderung genehmigen, die von jedem Knoten kommt. Agentenknoten fordern zum ersten Mal Zertifikate an, wenn sie versuchen, ausgeführt zu werden.

Führen Sie den folgenden Befehl auf dem Agentenknoten aus, um eine erste Verbindung herzustellen. Sie können die Warnungen/Fehler ignorieren.

puppet agent -t

Melden Sie sich beim Pupper-Server an und führen Sie den folgenden Befehl aus, um ausstehende Anforderungen anzuzeigen.

puppetserver ca list
Output:

Requested Certificates:
    client.itzgeek.local       (SHA256)  06:D8:8E:AE:CA:0B:B1:E7:90:B5:B9:1B:75:3C:95:69:D8:EF:27:0A:5D:CC:45:BB:15:34:64:D2:6B:2C:CA:98

Führen Sie den Befehl puppet cert sign aus, um eine Anfrage zu signieren.

puppetserver ca sign --certname client.itzgeek.local
Output:

Successfully signed certificate request for client.itzgeek.local

Der Puppet-Server kann jetzt mit dem Client-Rechner kommunizieren und den Knoten steuern.

Wenn Sie mehrere Signieranforderungen von Knoten haben, können Sie alle Anforderungen mit einem Befehl signieren.

puppetserver ca sign --all

Manchmal müssen Sie möglicherweise das Zertifikat eines bestimmten Knotens widerrufen, um es zurückzulesen.

Ersetzen Sie durch Ihren Client-Hostnamen.

puppetserver ca revoke --certname AGENT_NAME

Mit dem folgenden Befehl können Sie alle signierten und unsignierten Anfragen auflisten.

puppetserver ca list --all
Output:

Signed Certificates:
    puppetserver.itzgeek.local       (SHA256)  E6:2C:6C:1E:9B:C6:AA:D9:84:09:F3:67:45:1B:36:C6:1F:FB:46:5F:92:64:37:19:E3:74:0C:0D:29:D5:C5:F6  alt names: ["DNS:puppetserver.itzgeek.local", "DNS:puppetserver", "DNS:puppetserver.itzgeek.local"]  authorization extensions: [pp_cli_auth: true]
    client.itzgeek.local             (SHA256)  EF:D8:1A:F2:E9:56:A3:1F:DA:A9:8D:9B:71:02:D8:52:F1:44:98:92:A7:5F:DE:FC:5F:55:37:97:EC:9C:9A:96

Puppe-Client verifizieren

Sobald der Puppet-Server Ihr Client-Zertifikat signiert hat, führen Sie den folgenden Befehl auf dem Client-Rechner aus, um es zu testen.

puppet agent --test
Output:

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 '1591351483'
Notice: Applied catalog in 0.01 seconds

Schlussfolgerung

Das ist Al. Ich hoffe, Sie haben gelernt, wie man Puppet unter CentOS 8 / RHEL 8 installiert. Als weitere Lektüre erfahren Sie, wie Sie eine einfache Manifestdatei erstellen, um eine Datei und ein Verzeichnis auf dem Client-Knoten zu erstellen. Bitte teilen Sie uns Ihr Feedback im Kommentarbereich mit.


Cent OS
  1. So installieren Sie den Postfix-Mailserver auf RHEL 8 / CentOS 8

  2. So installieren Sie den DNS-Server unter RHEL 8 / CentOS 8 Linux

  3. So installieren Sie Puppet 6.x auf CentOS 7 / RHEL 7

  4. So installieren Sie Puppet auf RHEL 8/CentOS 8

  5. CentOS / RHEL 7:So installieren Sie die GUI

So installieren Sie Zabbix Server 4.x unter CentOS 6 / RHEL 6

So installieren Sie Jetty Web Server unter CentOS 7 / RHEL 7

So installieren Sie Zabbix Server 5.0 / 4.0 unter CentOS 7 / RHEL 7

So installieren Sie den VNC-Server unter CentOS 8 / RHEL 8

So installieren Sie Zabbix Server 5.0 / 4.0 auf CentOS 8 / RHEL 8

So installieren Sie Puppet Server unter CentOS 7