Installation von Puppet (Teil 1) – Der Puppet Master

Puppet ist eine Möglichkeit, wie ich zentralisiert ein Management von Windows, Linux und auf Wunsch auch Mac-Systeme durchführen kann und hat sich neben Tools wie Chef, Ansible und Saltstack seit vielen Jahren am Markt etabliert. Mit Hilfe von Puppet kann nahezu alles erreicht werden: Die Installation von Software, die Konfiguration von Systemen, die Definition von einem gewünschten Zustand, ….

Grundsätzlich gibt es einen oder mehrere Puppet Master-Server, auf dem die Konfiguration gehalten und betrieben wird. Auf den zu verwaltenden Systemen wird ein Puppet Agent installiert, der mit dem Master-Server spricht und nach einer Konfiguration fragt. Ist solch eine Konfiguration vorhanden (z.B. soll immer ein gewünschtes Paket installiert sein), setzt der Agent die gewünschte Konfiguration um. Befindet sich der Server bereits im gewünschten Zustand, wird nichts gemacht. Ändert sich ein Paket, die Version von einem Paket oder es kommt ein zweites hinzu, kann dies zentral auf dem Master konfiguriert werden und nach kurzer Zeit befinden sich alle Server im gewünschten Zustand.

In dieser Blogpost-Reihe beschreibe ich die Installation des Master-Servers, die Installation von dem Puppet-Agent auf einem Demo-System sowie eine Beschreibung, wie man mit der Erstellung und Nutzung der ersten Ressourcen beginnen kann.

Installation des Puppet Master Server

Zur Installation laden wir uns die benötigte Paket-Quelle von apt.puppetlabs.com herunter.

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

Nach dem Download installieren wir das Paket und aktualisieren unsere Paketquellen.

dpkg -i puppet6-release-stretch.deb
apt update

Nach dem Upate können wir den Puppet Master installieren.

apt install puppetmaster-passenger

Durch die Installation von dem Passenger-Paket wird direkt Apache2 als Webserver mit installiert.

Version statisch halten

Wenn man möchte, kann man die Version seiner Puppet-Installation beibehalten. Dies hat den Vorteil, dass ein Update nicht die gesamte Konfiguration zerlegt und man das alles aus einem Backup wiederherstellen muss. Soll solch ein festpinnen auf die gerade installierte Version gemacht werden, kann dies in den Einstellungen des apt-Paketmanagers gemacht werden. Dazu muss man die aktuelle Version auslesen

puppet help | tail -n 1

Nun muss man unter /etc/apt/preferences.d eine neue Datei anlegen, die apt dazu zwingt, nur die gewünschte Paket-Version zu installieren.

nano /etc/apt/preferences.d/00-puppet.pref

Hier muss der folgende Inhalt eingetragen werden:

Package: puppet puppet-common puppetmaster-passenger
Pin: version 4.8*
Pin-Priority: 501

Optional: Zertifikat mit alternativen Namen erstellen

Bei der Installation wird automatisch ein Zertifikat erstellt, welches unter /var/lib/puppet/ssl abgelegt wird.

Möchte man noch alternative Namen in seinem Zertifikat verwenden, müssen die Zertifikate entfernt werden, danach muss die Konfiguration angepasst werden.

rm -rf /var/lib/puppet/ssl
nano /etc/puppet/puppet.conf

Der Eintrag dns_alt_names könnte noch mit weiteren Namen ergänzt werden.

Wäre dies notwendig, können die Zertifikate danach wieder neu erstellt werden. Hierzu müsste der Befehl

puppet master --verbose --no-daemonize

aufgerufen werden. Ich in meinem Fall belasse es erstmal bei dem Standard-Namen und Zertifikat. Möchte man sich den aktuellen Stand der Zertifikate (sowohl vom Master-Server als auch von den Puppet-Clients) anschauen, geht dies immer mit dem Befehl

puppet cert list -all

Wenn der Parameter -all nicht genutzt wird, werden lediglich ausstehende Client-Zertifikate angefragt, die noch nicht für eine Verbindung mit dem Master autorisiert wurden. Befindet sich ein „+“ vor dem Zertifikat, ist dies ein bekannter und vertrauenswürdiges Zertifikat.

Besitzt der Master-Server ein Zertifikat, kann dies im weiteren Verlauf für die Signierung von Puppet-Clients genutzt werden.
Eine weitere Beschreibung der Haupt-Konfigurationsdatei puppet.conf befindet sich hier: Config files: The main config file (puppet.conf)

Wir sind nun an dieser Stelle erst einmal mit der Konfiguration und Installation des Puppet Masters fertig, weiter geht es im zweiten Beitrag mit der Installation des Clients.


Sie benötigten persönliche Unterstützung oder haben nicht die richtige Lösung für Ihr Problem gefunden?

Dieser Blog wird von mir, Jan Kappen, in seiner Freizeit betrieben, hier beschreibe ich Lösungen für Probleme aller Art oder technische Anleitungen mit Lösungsansätzen.

Die berufliche Unabhängigkeit

Ich bin seit Januar 2020 vollständig selbstständig und habe meine eigene Firma gegründet, die Building Networks mit Sitz in Winterberg im schönen Sauerland. Hier stehe ich als Dienstleister gerne für Anfragen, Support oder Projekte zur Verfügung.

Die Firma Building Networks bietet Ihnen:

  • Hilfe und Support per Telefon, Fernwartung oder persönlich vor Ort
  • Projekt-Unterstützung
  • Ausgezeichnete Kompetenz zu den Themen
    • Microsoft Hyper-V
    • Microsoft Failover Clustering & HA
    • Storage Spaces Direct (S2D) & Azure Stack HCI
    • Veeam Backup & Recovery
    • Microsoft Exchange
    • Microsoft Exchange Hybrid Infrastruktur
    • Microsoft Active Directory
    • Microsoft Office 365
    • Ubiquiti
    • 3CX VoIP PBX
    • Fortinet Network Security
    • Baramundi Software
    • ...

Ich freue mich über Ihren Kontakt, weitere Informationen finden Sie auf der Webseite meiner Firma unter Building-Networks.de

Jan

Jan Kappen arbeitet seit 2005 in der IT. Er hat seine Ausbildung 2008 abgeschlossen und war bis 2018 als IT-Consultant im Bereich Hyper-V, Failover Clustering und Software Defined Storage unterwegs. Seit 2015 wurde er jährlich von Microsoft als Most Valuable Professional (MVP) im Bereich "Cloud & Datacenter Management" ausgezeichnet für seine Kenntnisse und die Weitergabe seines Wissens. Jan ist häufig auf Konferenzen als Sprecher zu finden, weiterhin bloggt er viel. Von September 2018 bis Dezember 2019 war Jan als Senior Network- und Systemadministrator bei einem großen mittelständischen Unternehmen im schönen Sauerland angestellt. Im Januar 2020 hat er den Sprung in die Selbstständigkeit gewagt und ist seitdem Geschäftsführer der Firma Building Networks in Winterberg. In seiner Freizeit kümmert er sich um das Freifunk-Netzwerk in Winterberg und Umgebung.

Ein Kommentar:

  1. Pingback:Dynamische Palo Alto Firewall-Regeln basierend auf Minemeld - Teil 1 - Jans Blog

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert