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.