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

So installieren Sie Puppet Server und Agent unter Debian 11

Puppet ist ein zentralisiertes Konfigurationsmanagement- und Automatisierungstool. DevOps erstellt ein Konfigurationsmanagement, um Server und Anwendungen bereitzustellen, und die gesamte Konfiguration für die Automatisierung wird auf dem zentralen „Puppet Server“ gespeichert. Danach ziehen die "Agent"-Knoten eine neue Konfiguration vom "Puppet Server" und wenden den definierten Zustand an.

Alle Verbindungen zwischen "Puppet Server" und "Agent"-Knoten werden standardmäßig mit SSL verschlüsselt /TLS-Zertifikat. Puppet verwendet Domain Specific Language (DSL) zur Beschreibung der Systemkonfiguration und ähnelt der Ruby-Syntax.

In diesem Handbuch installieren und konfigurieren Sie den Puppet-Server und -Agenten auf Debian 11 Bullseye. Sie installieren den Puppet-Server auf dem Server-Hostnamen „puppet-server“ und den Puppet-Agenten auf dem Server mit dem Hostnamen „agent“. Am Ende erstellen Sie die ersten Puppet-Manifeste für die Installation des grundlegenden LEMP-Stacks auf dem „Agent“-Knoten.

Voraussetzung

  • Sie benötigen zwei verschiedene Debian 11-Server.
    • Der 'Puppet-Server ' mit der IP-Adresse '192.168.5.100 ' und den fqdn 'puppet-server.localdomainl.lan '.
    • Der 'Agent ' Knoten mit der IP-Adresse '192.168.5.150 ' und den fqdn 'agent.localdomain.lan '.
  • Außerdem benötigen Sie den Root-Benutzer oder einen Benutzer mit Root-/Sudo-Berechtigungen.

FQDN einrichten

Zuerst richten Sie den vollständig qualifizierten Domänennamen (FQDN) und die Datei „/etc/hosts“ sowohl auf „puppet-server“ als auch auf „agent“ ein. Dadurch wird sichergestellt, dass beide Server mit dem lokalen Domänennamen kommunizieren können.

Führen Sie zum Einrichten des FQDN die Datei „hostnamectl“ aus ' Befehl unten.

Führen Sie den folgenden Befehl aus, um den fqdn 'puppet-server.localdomain.lan einzurichten ' auf dem 'puppet-server '.

hostnamectl set-hostname puppet-server.localdomain.lan

Führen Sie den folgenden Befehl aus, um den fqdn 'agent.localdomain.lan einzurichten ' auf dem 'Agenten ' Knoten.

hostnamectl set-hostname agent.localdomain.lan

Bearbeiten Sie als Nächstes die Datei „/etc/hosts '-Datei mit dem Vim-Editor wie unten beschrieben.

sudo vim /etc/hosts

Kopieren Sie die folgende Konfiguration und fügen Sie sie ein.

192.168.5.100   puppet-server.localdomain.lan
192.168.5.150   agent.localdomain.lan

Speichern Sie die Datei und beenden Sie sie.

Führen Sie abschließend den 'ping aus ' unten, um die Verbindung zwischen dem 'puppet-server ' und 'Agent '.

ping puppet-server.localdomain.lan -c3
ping agent.localdomain.lan -c3

Wenn Ihre Konfiguration korrekt ist, sehen Sie die folgende Ausgabe. Die 'puppet-server.localdomain.lan ' wird auf den Server '192.168.5.100 aufgelöst ' und die 'agent.localdomain.lan ' wird in den Agentenknoten '192.168.5.150 aufgelöst '.

Puppet-Repository hinzufügen

Standardmäßig stellt Puppelabs Repository-Pakete für verschiedene Linux-Distributionen bereit, einschließlich des neuesten Debian 11 Bullseye. In diesem Schritt fügen Sie das Puppet-Repository sowohl zu „puppet-server“ als auch zu „agent“ hinzu und installieren es. Zum Zeitpunkt der Erstellung dieses Artikels ist die neueste Version von Puppet v7.x.

Laden Sie das Repository-Paket mit 'wget herunter ' Befehl unten.

wget https://apt.puppet.com/puppet7-release-bullseye.deb

Als nächstes installieren Sie die Deb-Datei 'puppet7-release-bullseye.deb ' mit dem 'dpkg ' Befehl unten.

sudo dpkg -i puppet7-release-bullseye.deb

Führen Sie nach Abschluss der Installation die Datei „apt ' Befehl unten, um den Debian-Paketindex zu aktualisieren und zu aktualisieren.

sudo apt update

Jetzt können Sie Puppet-Pakete installieren.

Puppet-Server installieren

In diesem Schritt installieren Sie das Puppet-Serverpaket auf dem ‚puppet-server‘. Zum Zeitpunkt der Erstellung dieses Artikels ist die neueste Version von Puppet v7.

Um Puppet Server zu installieren, führen Sie den folgenden apt-Befehl aus. Dieser Befehl installiert auch automatisch andere Pakete wie Java OpenJDK.

sudo apt install puppetserver

Geben Sie 'Y ein ' um die Installation zu bestätigen.

Nach Abschluss der Installation müssen Sie die Bash-Umgebung für den Puppet-Server laden.

Standardmäßig speichert Puppet seine Binärdatei im Verzeichnis „/opt/puppetlabs/bin ' Verzeichnis. Führen Sie den folgenden Befehl aus, um den neuen '$PATH anzuwenden ' Umgebungsvariable für Puppet Server.

source /etc/profile.d/puppet-agent.sh
echo $PATH

Optional können Sie auch den '$PATH anwenden ' Umgebungsvariable, indem Sie den folgenden Befehl ausführen.

echo "export PATH=$PATH:/opt/puppetlabs/bin/" | tee -a ~/.bashrc
source ~/.bashrc

Überprüfen Sie nun den '$PATH ' Umgebungsvariable mit dem folgenden Befehl. Stellen Sie sicher, dass das Verzeichnis „/opt/puppetlabs/bin ' befindet sich in der Liste von '$PATH ' Umgebungsvariable.

echo $PATH

Danach können Sie den 'puppetserver ausführen ' normal befehlen. Unten können Sie die Puppet-Version überprüfen.

puppetserver -v

Sie sollten eine Ausgabe ähnlich dem Screenshot unten erhalten.

Bearbeiten Sie als Nächstes die Konfiguration des Puppet-Servers '/etc/default/puppetserver' mit dem vim-Editor.

sudo vim /etc/default/puppetserver

Ändern Sie die maximale Speicherzuweisung für den Puppet-Server. Es hängt von Ihrem Systemspeicher ab. In diesem Handbuch haben wir 2 GB Arbeitsspeicher und weisen dem Puppet-Server 1 GB zu. Und wir werden die folgende Konfiguration verwenden.

JAVA_ARGS="-Xms1g -Xmx1g"

Speichern Sie die Konfigurationsdatei und beenden Sie.

Laden Sie als Nächstes den systemd-Manager neu, um die neue Puppet-Dienstdatei anzuwenden.

sudo systemctl daemon-reload

Starten und aktivieren Sie dann den 'puppetserver ' Dienst mit dem folgenden Befehl.

sudo systemctl start enable --now puppetserver

Der Dienst 'puppetserver ' sollte laufen. Führen Sie den folgenden Befehl aus, um den 'puppetserver zu überprüfen '.

sudo systemctl status puppetserver

Sie sollten eine Ausgabe sehen, die dem Screenshot unten ähnelt.

Wenn Sie auf Ihrem System eine UFW-Firewall verwenden, stellen Sie außerdem sicher, dass Sie den Port „8140“ öffnen ', die vom Puppet-Server verwendet wird.

Führen Sie den folgenden Befehl aus, um alle eingehenden Verbindungen aus dem lokalen Subnetz '192.168.5.0/24 zu verbinden ' an den Puppet-Server auf dem Port '8140 '.

sudo ufw allow from 192.168.5.0/24 to any proto tcp port 8140
sudo ufw status

Unten sind die aktuellen UFW-Firewallregeln aufgeführt, die Sie sehen sollten.

Puppet-Server konfigurieren

In diesem Schritt bearbeiten Sie die Puppet Server-Konfiguration. Und dies kann durch direktes Bearbeiten der Puppet-Konfiguration oder durch Generieren der Konfiguration mit dem 'Puppet erfolgen ' Befehlszeile.

Führen Sie die folgenden 'puppet'-Befehle aus, um den Puppet-Server einzurichten. Dadurch wird der standardmäßige Puppe-Server-Domänenname eingerichtet und das Laufintervall in der 'main '-Abschnitt und die Umgebung und dns_alt_names im Abschnitt 'Server '.

puppet config set server puppet-server.localdomain.lan --section main
puppet config set runinterval 1h --section main

puppet config set environment production --section server
puppet config set dns_alt_names puppet-server,puppet-server.localdomain.lan --section server

Überprüfen Sie nun die Puppet Server-Konfiguration '/etc/puppetlabs/puppet/puppet.conf ' mit der 'Katze ' Befehl unten.

cat /etc/puppetlabs/puppet/puppet.conf

Sie sollten die Puppet Server-Konfiguration wie unten sehen.

Starten Sie zuletzt den Dienst 'puppetserver neu ', um eine neue Konfiguration anzuwenden, indem Sie 'systemctl ausführen ' Befehl unten.

sudo systemctl restart puppetserver

An diesem Punkt haben Sie die Installation und Konfiguration von Puppet Server abgeschlossen.

Installieren und Konfigurieren des Puppet-Agenten

In diesem Schritt installieren und konfigurieren Sie den Puppet Agent auf dem Client-Rechner „agent“. '.

Stellen Sie vor der Installation von Puppet Agent sicher, dass Sie die FQDN-Konfiguration abgeschlossen und das Puppet-Repository hinzugefügt haben.

Lassen Sie uns nun den Puppet Agent installieren und konfigurieren.

Installieren Sie das Paket 'puppet-agent ' mit dem folgenden apt-Befehl.

sudo apt install puppet-agent

Führen Sie nach Abschluss der Installation den folgenden Befehl aus, um den Puppet-Dienst zu starten und zu aktivieren.

sudo /opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true

Sie sollten eine Ausgabe sehen, die dem Screenshot unten ähnelt.

Als Nächstes richten Sie den '$PATH ein ' Umgebungsvariable zum Hinzufügen des Puppet-Binärpfads '/opt/puppetlabs/bin/ '. Dadurch können Sie die 'Puppe ausführen ' Befehl direkt ohne den vollständigen Pfad der Binärdatei.

source /etc/profile.d/puppet-agent.sh
echo $PATH

Eine andere Möglichkeit besteht darin, einen neuen '$PATH hinzuzufügen ' Umgebungsvariable in die '~/.bashrc ' Konfiguration mit dem folgenden Befehl.

echo "export PATH=$PATH:/opt/puppetlabs/bin/" | tee -a ~/.bashrc
source ~/.bashrc

Überprüfen Sie nun den '$PATH ' Konfiguration der Umgebungsvariablen mit dem folgenden Befehl.

echo $PATH

Sie sollten den Puppet-Binärpfad „/opt/puppetlabs/bin sehen ' wird zum '$PATH hinzugefügt ' Umgebungsvariable.

Registrieren des Puppet-Agenten auf dem Puppet-Server

Nach der Installation des Puppet Agent richten Sie nun den Puppet Agent ein, um ihn beim Haupt-Puppet-Server zu registrieren.

Stellen Sie zunächst sicher, dass der fqdn des Puppet-Servers vom 'agent aus erreichbar ist 'Maschine. Testen Sie es mit 'ping ' Befehl unten.

ping puppet-server.localdomain.lan -c3

Führen Sie als Nächstes die folgenden Befehle aus, um den Puppet Agent zu konfigurieren. Dadurch wird der Domainname des Puppet-Servers definiert und ca_server auf dem 'Agenten ' Abschnitt.

puppet config set server puppet-server.localdomain.lan --section agent
puppet config set ca_server puppet-server.localdomain.lan --section agent

Überprüfen Sie die generierte Puppet-Konfiguration in der Datei „/etc/puppetlabs/puppet/puppet.conf“.

cat /etc/puppetlabs/puppet/puppet.conf

Sie sollten eine Ausgabe sehen, die dem Screenshot unten ähnelt.

Führen Sie nun den folgenden Befehl aus, um den Puppet-Dienst neu zu starten und neue Änderungen anzuwenden. Überprüfen Sie dann den Puppet-Dienst und stellen Sie sicher, dass er aktiv ist und ausgeführt wird.

sudo systemctl restart puppet
sudo systemctl status puppet

Unten ist die Ausgabe des Puppet-Dienststatus.

Führen Sie als Nächstes den folgenden Befehl aus, um den Puppet-Agenten beim Puppet-Server zu registrieren. Dieser Befehl generiert neue TLS-Zertifikate und erstellt neue Zertifikatsignieranforderungen an den Puppet-Server.

puppet ssl bootstrap

Wechseln Sie nun zum Puppet Server-Terminal und führen Sie den folgenden Befehl aus, um Zertifikatsignaturanforderungen zu überprüfen, und überprüfen Sie dann die Zertifikatsignatur für den Puppet-Agenten „agent.localdomain.lan '.

puppetserver ca list --all
puppetserver ca sign --certname agent.localdomain.lan

Sie sollten eine Nachricht wie „Erfolgreich signierte Zertifikatsanforderung .... sehen '.

Führen Sie als Nächstes den folgenden Befehl aus, um die Liste der Zertifikate auf dem Puppet-Server zu überprüfen.

puppetserver ca list-all

Sie sollten zwei verschiedene Zertifikate sehen, das Zertifikat für Puppet Server und Puppet Agent.

Wechseln Sie nun erneut zum Puppet Agent-Terminal und Sie sollten Meldungen wie „Notice:Completed SSL initialization“ sehen ', was bedeutet, dass die Zertifikatsignieranforderungen erfolgreich abgeschlossen wurden.

An diesem Punkt können Sie ein neues erstes Puppet-Manifest erstellen.

Erstes Puppet-Manifest erstellen

In diesem Schritt erstellen Sie ein neues erstes Puppet-Manifest für die Installation des LEMP-Stacks (Nginx, MariaDB und PHP-FPM). Alle Manifeste für die Produktionsumgebung müssen im Puppet Server-Verzeichnis „/etc/puppetlabs/code/environments/production/ gespeichert werden '.

Ändern Sie Ihr aktuelles Arbeitsverzeichnis in „/etc/puppetlabs/code/environments/production/ '.

cd /etc/puppetlabs/code/environments/production/

Erstellen Sie als Nächstes ein neues Manifest-Layout-Verzeichnis für den LEMP-Stack unter den „modules ' Verzeichnis.

mkdir -p modules/lemp/{manifests,files}

Wechseln Sie zu 'modules/lemp ' Verzeichnis und erstellen Sie eine neue Puppet-Manifestdatei 'manifests/init.pp ' mit dem vim/nano-Editor.

cd modules/lemp/
nano manifests/init.pp

Kopieren Sie die folgende Puppet-Syntaxsprache und fügen Sie sie ein, um den LEMP-Stack zu installieren, stellen Sie sicher, dass jeder LEMP-Stack-Dienst betriebsbereit ist, und erstellen Sie eine neue benutzerdefinierte index.html-Datei.

class lemp {

    Package { ensure => 'installed' }
    $lemppackages = [ 'nginx', 'mariadb-server', 'php-fpm' ]
    package { $lemppackages: }

    Service { ensure => 'running', enable => 'true'}
    $lempsvc = [ 'nginx', 'mariadb', 'php7.4-fpm' ]
    service { $lempsvc: }

    file { '/var/www/html/index.html':
     ensure  => file,
     content => "<h1><center>Welcome to Nginx - Managed by Puppet</center></h1>",
     mode    => '0644',
   }

}

Speichern Sie die Datei und beenden Sie sie.

Führen Sie als Nächstes den folgenden Befehl aus, um die Puppet-Manifestdatei 'init.pp' zu validieren .

puppet parser validate init.pp

Wenn Sie keine Ausgabenachricht sehen, ist die Konfiguration korrekt.

Erstellen Sie nun eine weitere Konfiguration 'manifests/site.pp ' mit dem vim/nano-Editor.

cd /etc/puppetlabs/code/environments/production/
vim manifests/sites.pp

Definieren Sie den Zielhost auf 'agent.localdomain.lan ' und wenden Sie das neue Puppet-Manifest 'lemp an '.

node 'agent.localdomain.lan' {
    include lemp
}

Speichern Sie die Datei und beenden Sie sie.

Überprüfen Sie die Konfiguration des Puppet-Manifests erneut mit dem folgenden Befehl.

puppet parser validate site.pp

Verifizieren und Anwenden von Puppet-Manifesten

Sie haben jetzt ein neues erstes Puppet-Manifest zum Bereitstellen von LEMP Stack erstellt. An diesem Punkt synchronisiert der Puppet-Agent-Knoten automatisch alle Manifeste mit dem Puppet-Server und wendet eine neue Manifest-Konfiguration an.

Sie können das Puppet-Manifest aber auch manuell von der Puppet-Agent-Maschine anwenden.

Wechseln Sie zurück zum „Agenten“ des Terminalservers und führen Sie den folgenden Befehl aus, um Puppet-Manifeste manuell anzuwenden.

puppet agent -t

Dadurch wird das Puppet-Manifest auf dem Puppet-Agent-Computer ausgeführt und der LEMP-Stack über die Puppet-Manifeste „lemp“ installiert '.

Unten sehen Sie die Ausgabe, die Sie erhalten.

Führen Sie nun den folgenden Befehl aus, um jeden Dienst Nginx, MariaDB und PHP-FPM zu überprüfen.

sudo systemctl status nginx
sudo systemctl status mariadb
sudo systemctl status php7.4-fpm

Sie sollten sehen, dass jeder Dienst aktiv ist und ausgeführt wird.

Öffnen Sie nun Ihren Webbrowser und geben Sie die IP-Adresse Ihres Agentenknotens in die Adressleiste ein. Und Sie sollten die benutzerdefinierte index.html-Datei unten sehen.

Sie haben die LEMP-Stack-Bereitstellung jetzt mithilfe der Puppet-Manifeste erfolgreich auf den Agentencomputer angewendet.

Schlussfolgerung

Glückwunsch! Sie haben jetzt Puppet Server und Agent erfolgreich auf Debian 11 Bullseye installiert. Außerdem haben Sie gelernt, wie Sie die ersten Puppet-Manifeste für die Installation von LEMP Stack erstellen.

OIm nächsten Schritt könnten Sie interessant sein, einen weiteren Knoten einzurichten und ein komplexeres Puppet-Manifest für Ihre Bereitstellungen zu erstellen.


Debian
  1. So installieren und konfigurieren Sie OpenVPN Server unter Debian 10

  2. So installieren Sie Redis Server unter Debian 11

  3. So installieren und konfigurieren Sie Squid Proxy unter Debian 11

  4. So installieren Sie ProFTPD unter Debian 8

  5. So installieren Sie MySQL Server unter Debian 9

So installieren Sie MySQL 8 auf Debian 10

So installieren Sie Todoman auf einem Debian 11-Server

So installieren und konfigurieren Sie den Apache-Webserver unter Debian 11

So installieren Sie FastPanel unter Debian 11

So installieren Sie I2P auf einem Debian-Server:

So installieren und aktivieren Sie den SSH-Server unter Debian 10