Puppet Server und Agent unter Ubuntu 20.04 installieren

Puppet ist eine freie und quelloffene automatisierte Verwaltungsmaschine für die Betriebssysteme Linux, Unix und Windows. Sie wird für die Bereitstellung, Konfiguration und Verwaltung von Servern verwendet und führt administrative Aufgaben wie das Hinzufügen von Benutzern, die Installation von Paketen und vieles mehr aus. Sie hilft Systemadministratoren, durch die Automatisierung von Aufgaben auf Tausenden von physischen und virtuellen Maschinen Zeit und geistigen Raum freizusetzen. Es verwendet ein Client-Server-Modell. Dabei steuert der Puppet-Master die Konfigurationsinformationen für die Puppet-Agenten, während die Puppet-Agenten mit dem Puppet-Master sprechen und Konfigurationsprofile vom Puppet-Master abrufen.

In diesem Tutorial wird erklärt, wie ein Puppet-Server und ein Puppet-Agent auf einem Ubuntu 20.04-Server installiert werden.

Voraussetzungen

  • Zwei Server mit Ubuntu 20.04.
  • Auf beiden Servern ist ein Root-Passwort konfiguriert.

Erste Schritte

Zunächst müssen Sie alle Pakete auf Puppet-Master- und Puppet-Client-Systemen aktualisieren. Sie können sie aktualisieren, indem Sie den folgenden Befehl ausführen:

apt-get update -y

Sobald alle Pakete auf dem neuesten Stand sind, können Sie mit dem nächsten Schritt fortfahren.

Hostnamen-Auflösung einrichten

Als nächstes müssen Sie Hostname auf beiden Knoten einrichten. So kann jeder Knoten über den Hostnamen miteinander kommunizieren. Sie können dies tun, indem Sie die Datei /etc/hosts auf beiden Knoten bearbeiten:

nano /etc/hosts

Fügen Sie die folgenden Zeilen auf beiden Knoten hinzu:

puppet-master-ip puppetmaster puppet
puppet-client-ip puppetclient

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Dann können Sie mit dem nächsten Schritt fortfahren.

Puppet-Server installieren

Zuerst müssen Sie den Puppet-Server auf dem Master-Knoten installieren. Standardmäßig ist das Puppet-Paket nicht im Standard-Repository von Ubuntu 20.04 verfügbar. Daher müssen Sie das Puppet-Repository auf Ihrem Server installieren.

Laden Sie zunächst die neueste Version von Puppet mit dem folgenden Befehl herunter:

wget https://apt.puppetlabs.com/puppet6-release-focal.deb

Sobald das Paket heruntergeladen ist, installieren Sie es, indem Sie den folgenden Befehl ausführen:

dpkg -i puppet6-release-focal.deb

Sobald die Installation abgeschlossen ist, aktualisieren Sie das Repository und installieren Sie den Puppet-Server durch Ausführen des folgenden Befehls:

apt-get update -y
apt-get install puppetserver -y

Nach der Installation des Puppet-Servers müssen Sie die Speicherzuweisungsgröße des Puppet-Java-Prozesses ändern. Sie können dies tun, indem Sie die Datei /etc/default/puppetserver editieren:

nano /etc/default/puppetserver

Ändern Sie die Speichergröße auf 1g wie unten gezeigt:

JAVA_ARGS="-Xms1g -Xmx1g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den Puppet-Dienst und ermöglichen Sie ihm, beim Systemneustart mit dem folgenden Befehl zu starten:

systemctl start puppetserver
systemctl enable puppetserver

Als nächstes können Sie den Status des Puppet-Dienstes mit dem folgenden Befehl überprüfen:

systemctl status puppetserver

Sie sollten den folgenden Befehl sehen:

? puppetserver.service - puppetserver Service
     Loaded: loaded (/lib/systemd/system/puppetserver.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-09-05 09:33:55 UTC; 3s ago
    Process: 3673 ExecStart=/opt/puppetlabs/server/apps/puppetserver/bin/puppetserver start (code=exited, status=0/SUCCESS)
   Main PID: 3715 (java)
      Tasks: 42 (limit: 4915)
     Memory: 962.3M
     CGroup: /system.slice/puppetserver.service
             ??3715 /usr/bin/java -Xms2g -Xmx2g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger -XX:OnOutOfMemoryError="kill>

Sep 05 09:33:08 puppetmaster systemd[1]: Starting puppetserver Service...
Sep 05 09:33:55 puppetmaster systemd[1]: Started puppetserver Service.

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Installieren und Konfigurieren des Puppet-Agenten

An diesem Punkt wird der Puppet-Server installiert und konfiguriert. Jetzt müssen Sie den Puppet-Agenten auf dem Client-Knoten installieren.

Laden Sie zunächst das Puppet-Repository mit dem folgenden Befehl herunter und installieren Sie es:

wget https://apt.puppetlabs.com/puppet6-release-focal.deb
dpkg -i puppet6-release-focal.deb

Aktualisieren Sie als nächstes das Repository und installieren Sie den Puppet-Agenten, indem Sie den folgenden Befehl ausführen: „Aktualisieren Sie das Repository und installieren Sie den Puppet-Agenten:

apt-get update -y
apt-get install puppet-agent -y

Nach der Installation des Puppet-Agenten müssen Sie die Puppet-Konfigurationsdatei bearbeiten und die Puppet-Stamminformationen definieren:

nano /etc/puppetlabs/puppet/puppet.conf

Fügen Sie die folgenden Zeilen hinzu:

[main]
certname = puppetclient
server = puppetmaster

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den Puppet-Agenten-Dienst und aktivieren Sie ihn beim Booten mit dem folgenden Befehl:

systemctl start puppet
systemctl enable puppet

Überprüfen Sie dann den Status des Puppets mit dem folgenden Befehl:

systemctl status puppet

Sie sollten die folgende Ausgabe erhalten:

? puppet.service - Puppet agent
     Loaded: loaded (/lib/systemd/system/puppet.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-09-05 09:43:15 UTC; 22s ago
   Main PID: 1435 (puppet)
      Tasks: 2 (limit: 2353)
     Memory: 52.8M
     CGroup: /system.slice/puppet.service
             ??1435 /opt/puppetlabs/puppet/bin/ruby /opt/puppetlabs/puppet/bin/puppet agent --no-daemonize

Sep 05 09:43:15 puppetagent systemd[1]: Started Puppet agent.

Zu diesem Zeitpunkt ist der Puppet-Agent installiert und konfiguriert. Nun können Sie mit dem nächsten Schritt fortfahren.

Zertifikat des Puppet-Agenten signieren

Puppet verwendet eine Client-Server-Architektur, so dass Sie für jeden Agentenknoten eine Zertifikatsanforderung genehmigen müssen, bevor er konfiguriert werden kann.

Führen Sie auf dem Puppet-Masterknoten den folgenden Befehl aus, um alle Zertifikate aufzulisten:

/opt/puppetlabs/bin/puppetserver ca list

Sie sollten die folgende Ausgabe sehen:

Requested Certificates:
    puppetclient       (SHA256)  A4:9A:E9:87:8B:54:0A:4F:A0:78:65:1A:3C:99:B5:EC:31:9E:BB:4C:17:8A:50:16:E9:1E:3D:D6:27:74:89:85
    puppetmaster       (SHA256)  E9:25:4C:51:4E:47:D7:44:11:1F:C5:A9:4E:96:D9:E8:3A:EB:A0:01:48:06:B5:EF:3F:C4:09:03:90:3E:D8:2D

Signieren Sie nun alle Zertifikate mit dem folgenden Befehl:

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

Sie sollten die folgende Ausgabe erhalten:

Successfully signed certificate request for puppetclient
Successfully signed certificate request for puppetmaster

Jetzt kann der Puppenspieler mit dem Agentenknoten kommunizieren und ihn steuern.

Testen Sie auf dem Puppet-Agenten-Knoten die Kommunikation des Puppenspielers und des Agenten mit folgendem Befehl: Sie sollten die folgende Ausgabe erhalten

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

Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe erhalten:

Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Caching catalog for puppetclient
Info: Applying configuration version '1599300398'
Notice: Applied catalog in 0.02 seconds

Schlussfolgerung

Herzlichen Glückwunsch! Sie haben Puppet Master und Agent erfolgreich auf dem Ubuntu 20.04-Server installiert und konfiguriert. Sie können nun problemlos mehrere Agenten hinzufügen und diese mit Puppet einfach verwalten.

Das könnte dich auch interessieren …