GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So installieren Sie Puppet 6.x auf Ubuntu 18.04 / Ubuntu 16.04 und Debian 9

Wenn Sie an ein Konfigurationsmanagement-Tool denken, kommt Ihnen als erstes Puppet in den Sinn. Puppet ist ein Open-Source-Konfigurationsverwaltungstool, mit dem Sie die Konfigurationen von Hunderten von Client-Systemen von einem zentralen Standort aus bereitstellen und verwalten können.

Puppet erleichtert dem Systemadministrator das Leben, indem es den Zeitaufwand für sich wiederholende Aufgaben reduziert und es ihm ermöglicht, an anderen produktiven Arbeiten zu arbeiten, und stellt außerdem sicher, dass die gesamte Konfiguration in der gesamten Infrastruktur konsistent ist.

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

Diese Anleitung hilft Ihnen bei der Installation von Puppet Server auf Ubuntu 18.04 / Ubuntu 16.04 &Debian 9.

Architektur

Agent / Master

In dieser Architektur führen ein oder mehrere Server die Puppet-Master-Anwendung aus, und die Puppet-Agent-Anwendung wird auf verwalteten Knoten (Client-Servern) ausgeführt, normalerweise als Hintergrunddienst.

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

Eigenständige Architektur

In dieser Architektur führt der Client-Knoten die Puppet Apply-Anwendung aus, normalerweise als Cron-Job.

Umgebung

Hier konfigurieren wir eine Marionette in der Master/Agent-Architektur und verwenden zwei Systeme, wie unten erwähnt.

Puppenmeister

Hostname: server.itzgeek.local

IP-Adresse: 192.168.1.10

Puppet-Client

Hostname: client.itzgeek.local

IP-Adresse: 192.168.1.20

Voraussetzungen

NTP installieren

Die Zeit muss auf einem Puppet Master genau eingestellt werden, da er als Zertifizierungsstelle fungiert, um die von den Client-Knoten kommenden Zertifikate zu signieren. Zu diesem Zweck verwenden wir NTP.

Installieren Sie das NTP-Paket und führen Sie die Zeitsynchronisierung mit Upstream-NTP-Servern durch.

sudo apt updatesudo apt install -y ntp ntpdatesudo ntpdate -u 0.ubuntu.pool.ntp.org

Zeitzone

Stellen Sie mithilfe von.

sicher, dass sich alle Knoten in derselben Zeitzone befinden
Datum

Ausgabe:

Dienstag, 4. September, 22:28:34 EDT 2018

Wenn es Abweichungen gibt, ändern Sie es entsprechend. Listen Sie die verfügbaren Zeitzonen auf.

timedatectl list-timezones

Stellen Sie die Zeitzone mit dem folgenden Befehl ein.

sudo timedatectl set-timezone America/New_York

DNS

Der Puppet-Agent verwendet den Hostnamen, um mit dem Puppet-Server zu kommunizieren. Stellen Sie also sicher, dass der Agentenknoten den Hostnamen des Puppet-Servers auflösen kann. Richten Sie entweder /etc/hosts ein Datei oder DNS-Server.

/etc/hosts-Datei:

sudo nano /etc/hosts

Fügen Sie einen Hosteintrag ähnlich der folgenden Zeile hinzu.

192.168.1.10 server.itzgeek.local-Server

PuppetLabs-Repository einrichten

Um den Puppet-Master/Agent zu installieren, müssten wir auf allen Knoten ein Puppet-Repository einrichten.

### Ubuntu 18.04 ### wget https://apt.puppetlabs.com/puppet6-release-bionic.debsudo dpkg -i puppet6-release-bionic.debsudo apt update### Ubuntu 16.04 ### wget https://apt.puppetlabs.com/puppet6-release-xenial.debsudo dpkg -i puppet6-release-xenial.debsudo apt update### Debian 9 ### wget https://apt.puppetlabs.com/puppet6-release-stretch.debsudo dpkg -i puppet6-release-stretch.debsudo apt update

Aktivieren Sie unter Ubuntu 18.04 das Universe-Repository, das die für Puppet Server erforderlichen Pakete enthält.

Puppet-Server installieren

Puppet Server ist die Serversoftware, die auf dem Puppet-Master-Knoten läuft. Installieren Sie den Puppet-Server mit dem folgenden Befehl.

sudo apt install -y puppetserver

Der Puppet-Server ist jetzt installiert, starten Sie den Puppet-Server-Dienst noch nicht.

Puppet-Server konfigurieren

Speicherzuweisung (optional)

Standardmäßig ist Puppet Server JVM für die Verwendung von 2 GB RAM konfiguriert. Sie können die Speichernutzung jederzeit anpassen, abhängig davon, wie viel Speicher Ihr Master-Knoten hat; Stellen Sie sicher, dass es ausreicht, um alle damit verbundenen Knoten zu verwalten.

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

sudo nano /etc/default/puppetserver

Ändern Sie den Wert wie unten gezeigt.

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"

Puppenkonfiguration

Einfache Konfigurationen

Puppet Server erfordert keine Konfiguration, und Sie können einfach den Puppetserver-Dienst starten. Es werden die Standardeinstellungen verwendet.

Zum Beispiel:dns_alt_names (Puppe, ) .

Puppet verwendet Ihren System-Hostnamen und Puppet als alternative DNS-Namen für Puppet Server. Sie müssten also server= oder server=puppet in der Puppet-Agent-Konfigurationsdatei verwenden.

Erweiterte Konfigurationen (optional)

Hier werde ich die Puppet Server-Einstellungen für unsere Anforderung ändern.

sudo nano /etc/puppetlabs/puppet/puppet.conf

Platzieren Sie die folgenden Linien. Passen Sie es an Ihre Umgebung an.

[master]dns_alt_names =server.itzgeek.local,server [main]certname =server.itzgeek.localserver =server.itzgeek.localenvironment =productionruninterval =15m

Puppet-Server starten

Generieren Sie eine Stamm- und Zwischensignierungszertifizierungsstelle für Puppet Server.

sudo /opt/puppetlabs/bin/puppetserver ca setup

Ausgabe:

Generierung erfolgreich. Finden Sie Ihre Dateien in /etc/puppetlabs/puppet/ssl/ca

Starten und aktivieren Sie den Puppet-Server.

sudo systemctl start puppetserversudo systemctl enable puppetserver

Puppet-Agent installieren

Richten Sie das Puppet-Repository wie zuvor gezeigt auf Ihrem Agentenknoten ein und installieren Sie dann den Puppet-Agenten mit dem folgenden Befehl.

sudo apt install -y puppet-agent

Der Puppet-Agent verwendet auch einige der Standardeinstellungen, um eine Verbindung zum Master-Knoten herzustellen. Aber wir müssen die Puppet-Konfigurationsdatei bearbeiten und Puppet-Master-Informationen festlegen.

sudo nano /etc/puppetlabs/puppet/puppet.conf
Legen Sie Server fest Wert gemäß Ihrem Master-Hostnamen und certname als Ihr Client-Hostname. In meinem Fall ist der Server server.itzgeek.local und certname ist client.itzgeek.local.
[main]certname =client.itzgeek.local server =server.itzgeek.local Umgebung =productionruninterval =15m

Sie können den Wert von runinterval ändern hängt von der Anforderung ab. Dies steuert, wie lange ein Agent zwischen den beiden Kataloganforderungen warten soll.

Sie können den Wert in Sekunden (30s oder 30) oder in Minuten (30m) oder in Stunden (1h) einstellen.

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

sudo /opt/puppetlabs/bin/puppet-Ressourcendienst Puppet sure=running enable=true

Sie würden eine Ausgabe wie unten erhalten.

Hinweis:/Service[puppet]/ensure:stellt sicher, dass „stopped“ in „running“ geändert wurde 

Agentenknotenzertifikat auf Masterserver signieren

In einer Agent/Master-Bereitstellung muss ein Administrator eine Zertifikatsanforderung für jeden Agentenknoten genehmigen, bevor dieser Knoten Konfigurationen abrufen kann. Agentenknoten fordern beim ersten Ausführungsversuch Zertifikate an.

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

sudo /opt/puppetlabs/bin/puppetserver ca list

Ausgabe:

Angeforderte Zertifikate:client.itzgeek.local (SHA256) 07:B1:57:5B:DE:AF:9F:4A:DF:4A:D1:CD:C4:2A:F9:9F:D9:76:CD:C5:F1:60:09:9C:B4:BA:76:D6:7B:3C:6F:0D

Führen Sie den folgenden Befehl aus, um eine Anfrage zu signieren.

sudo /opt/puppetlabs/bin/puppetserver ca sign --certname client.itzgeek.local

Ausgabe:

Erfolgreich signierte Zertifikatsanforderung für client.itzgeek.local

So signieren Sie alle Zertifikatsignierungsanforderungen in einem Befehl.

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

In einigen Fällen müssen Sie möglicherweise das Zertifikat eines bestimmten Knotens widerrufen, um es zurückzulesen. Ersetzen Sie mit Ihrem Client-Hostnamen.

sudo /opt/puppetlabs/bin/puppetserver ca revoke --certname <AGENT_NAME>

Listen Sie alle signierten und nicht signierten Anforderungen auf. Sie sollten auf dem Master-Server ausgeführt werden.

sudo /opt/puppetlabs/bin/puppetserver ca list --all

Ausgabe:

Signierte Zertifikate:server.itzgeek.local (SHA256) E5:A4:93:45:EF:82:3B:FF:6E:36:D2:9A:F0:75:15:67:94:33:06:2F:84:9F:D1:45:CE:C6:1C:86:D4:57:B8:25 Alternativnamen:["DNS:server.itzgeek.local", "DNS:server", "DNS:server.itzgeek.local"] client.itzgeek.local (SHA256) AB:3B:F0:D0:62:69:50:DD:50:45:CE:AD:A5:2C:4F:9E:EB:19 :D6:C6:9C:34:A3:C5:CD:84:8F:BA:50:04:4A:D0

Puppet-Agent überprüfen

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

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

Ausgabe:

Info:Verwenden der konfigurierten Umgebung „production“Info:Abrufen von PluginfactsInfo:Abrufen von pluginInfo:Abrufen von localesInfo:Zwischenspeichern des Katalogs für client.itzgeek.localInfo:Anwenden der Konfigurationsversion „1558888335“Hinweis:Angewandter Katalog in 0,02 Sekunden

Manifest erstellen

Manifest ist eine Datendatei, die Client-Konfigurationen enthält, die in der deklarativen Sprache von Puppet oder einer Ruby-DSL geschrieben sind. Dieser Abschnitt behandelt das grundlegende Manifest zum Erstellen eines Verzeichnisses sowie einer Datei auf dem Client-Rechner.

Die Hauptmanifestdatei von Puppet befindet sich unter /etc/puppetlabs/code/environments/production/manifests Verzeichnis. Erstellen Sie eine neue Manifestdatei.

sudo nano /etc/puppetlabs/code/environments/production/manifests/site.pp

Fügen Sie nun die folgenden Zeilen zum Manifest hinzu, um ein Verzeichnis auf dem Client-Knoten zu erstellen.

Knoten 'client.itzgeek.local' { # Gilt nur für den erwähnten Knoten. Wenn nichts erwähnt, gilt für alle. file { '/tmp/puppetdir':# Datei des Ressourcentyps sicherstellen => 'Verzeichnis', # Als Verzeichnis erstellen Eigentümer => 'root', # Eigentümerschaft group => 'root', # Gruppenname mode => '0755', # Verzeichnisberechtigungen }}
Wenn die Knotenvariable nicht festgelegt ist, gilt dieses Manifest für alle Knoten, die mit dem Puppet-Master verbunden sind.

Führen Sie nun den folgenden Befehl auf dem Client-Knoten aus, um die Konfigurationen abzurufen.

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

Ausgabe:

Info:Verwenden der konfigurierten Umgebung „production“Info:Abrufen von PluginfactsInfo:Abrufen von pluginInfo:Abrufen von localesInfo:Zwischenspeichern des Katalogs für client.itzgeek.localInfo:Anwenden der Konfigurationsversion „1558888460“Hinweis:/Stage[main]/Main/Node[client .itzgeek.local]/File[/tmp/puppetdir]/ensure:createdNotice:Angelegter Katalog in 0,16 Sekunden

Vergewissern Sie sich, dass das Verzeichnis auf dem Client-Knoten erstellt wurde.

ls -ld /tmp/puppetdir/

Ausgabe:

drwxr-xr-x 2 root root 4096 26. Mai 22:03 /tmp/puppetdir/

Lassen Sie uns ein Manifest schreiben, um eine Datei mit darin enthaltenem Inhalt zu erstellen.

Knoten 'client.itzgeek.local' { # Gilt nur für den erwähnten Knoten. Wenn nichts erwähnt, gilt für alle. file { '/tmp/puppetfile':# Datei des Ressourcentyps sicherstellen => 'vorhanden', # Stellen Sie sicher, dass es existiert Eigentümer => 'root', # Eigentümerschaft group => 'root', # Gruppenname mode => '0644', # Dateiberechtigungen content => "Diese Datei wird von Puppet Server erstellt" # Inhalt der Datei }}

Sie können zum Client-Rechner gehen und den Katalog wie im vorherigen Beispiel gezeigt abrufen oder 15 Minuten warten, bis der Katalog automatisch angewendet wird.

Schlussfolgerung

Ich hoffe, dieser Beitrag hat Ihnen geholfen, Puppet Server auf Ubuntu 18.04 / Ubuntu 16.04 &Debian 9 zu installieren. Bitte teilen Sie Ihr Feedback im Kommentarbereich mit.


Debian
  1. So installieren Sie Redis Server unter Debian 11

  2. So installieren Sie Puppet 6.x auf Ubuntu 18.04 / Ubuntu 16.04 und Debian 9

  3. So installieren Sie MySQL 8.0 / 5.7 unter Debian 11 / Debian 10

  4. So installieren Sie ProFTPD unter Debian 8

  5. So installieren Sie MySQL Server unter Debian 9

So installieren Sie FastPanel unter Debian 11

So installieren Sie I2P auf einem Debian-Server:

So installieren Sie VNC unter Debian 10

So installieren Sie VNC-Server unter Debian 11

So installieren Sie Mongoku auf Ubuntu 20.04 / Debian 11

Wie installiere ich ODBC unter Ubuntu 20.04 / Debian 11?