Was ist Puppe?


Bei DevOps möchten Sie so viele Aufgaben wie möglich automatisieren. Die manuelle Konfiguration von Umgebungen dauert bei riesigen Infrastrukturen Wochen. Wenn alles eingerichtet ist, löschen Sie Brände, anstatt neue effektive Lösungen wie Rancher-Server zu implementieren.

Puppet hilft bei der Automatisierung manueller Aufgaben, um Systeme schnell bereitzustellen und Anwendungen bereitzustellen. Das dynamische Infrastrukturmanagement ist das Herzstück von Puppet.

In diesem Artikel wird erklärt, was Puppet ist, welche Probleme es löst und wie man mit Puppet als DevOps-Team manuelle Aufgaben erfolgreich automatisieren kann.

Was ist Puppe?

Puppet ist ein IaC-Tool (Infrastructure as Code) zur Verwaltung mehrerer Server. Puppet ist (hauptsächlich) in Ruby geschrieben, läuft auf mehreren Unix-ähnlichen Systemen und unterstützt auch Windows.

Die Software ist sehr ausgereift, die Erstveröffentlichung erfolgte im Jahr 2005. Puppet ist als kostenlose Open-Source-Software erhältlich, für komplexe Infrastrukturen ist auch eine proprietäre Version verfügbar.

Wofür werden Puppen verwendet?

Puppet automatisiert die Verwaltung und Bereitstellung der Serverkonfiguration. Die Software ermöglicht es, Fäden zu ziehen und Zustände auf mehreren Systemen gleichzeitig zu verwalten, und der Ansatz reduziert die manuelle Einrichtung und Verwaltung einzelner Server.

Puppet definiert den gewünschten Zustand für das System und nicht den Weg dorthin. Die Konfiguration gilt für verschiedene Plattformen und Geräte und behält den Status in der gesamten Infrastruktur bei. Insgesamt besteht für Systemadministratoren weniger Bedarf, Probleme zu löschen, sodass das DevOps-Team neue und bessere Serverlösungen implementieren kann.

Mit dem benutzerdefinierten Puppet-Modul von phoenixNAP auf GitHub können Sie CA Trust-Anker innerhalb des CA-Certificates-Frameworks verwalten. Verwalten und automatisieren Sie Bare-Metal-Cloud-Server ganz einfach mit Puppet.

Puppet-Konfigurationsmanagement

Automatisierungsskripte helfen bei der Bewältigung wiederkehrender Aufgaben wie der Installation und Konfiguration von Servern. Bei der Arbeit mit einer umfangreichen Infrastruktur lassen sich Automatisierungsskripte jedoch nicht skalieren.

Das Konfigurationsmanagement bietet eine Lösung für umfangreiche Infrastrukturkonfigurationen. Die Praktiken gelten als das Rückgrat von DevOps und ermöglichen häufige und zuverlässigere Software-Releases in einer etablierten DevOps-Pipeline.

Die Verwaltung der Serverkonfiguration erfolgt dank des Infrastructure-as-Code-Ansatzes. Im Fall von Puppet liegt der Serververwaltungscode im Puppet-Code vor, der Ruby ähnelt. Die Sprache ist deklarativ und beschreibt eine modellbasierte Konfiguration.

Wie funktioniert Puppet?

Puppet verwendet einen Client-Server-Ansatz und besteht aus den folgenden Systemen:

  • Der Puppet Master ist ein Server mit dem Puppet Master-Daemon, der mithilfe von Manifesten wichtige Systeminformationen für alle Knoten verwaltet.
  • Die Puppet-Agenten sind Knoten, auf denen Puppet installiert ist und auf denen der Puppet-Agent-Daemon läuft.

In den folgenden Abschnitten werden die wesentlichen Puppet-Elemente und die Terminologie erläutert, die dabei helfen, die Funktionsweise von Puppet zu verdeutlichen.

Puppentopologie und Architektur

Puppet nutzt eine Client/Server-Architektur, die aus Puppet Master und Puppet Agents besteht. Puppet Agents nutzt den Pull-Modus, um den Master abzufragen und knotenspezifische und standortspezifische Konfigurationsinformationen abzurufen.

Die Topologie durchläuft die folgenden Schritte:

  1. Ein Knoten, auf dem ein Puppet Agent-Daemon ausgeführt wird, sammelt alle Informationen (Fakten) über sich selbst, und der Agent sendet die Fakten an den Puppet Master.
  2. Der Puppet Master verwendet die Daten, um einen Katalog darüber zu erstellen, wie der Knoten konfiguriert werden soll, und sendet ihn zurück an den Puppet Agent.
  3. Der Puppet Agent konfiguriert sich anhand des Katalogs selbst und meldet sich beim Puppet Master zurück.

Puppet verwendet ein Dienstprogramm namens Facter, um Systeminformationen zu ermitteln. Das Tool wird standardmäßig mit der Puppet-Installation geliefert.

Um Puppet zu installieren, befolgen Sie unsere Anleitungen:
So installieren Sie Puppet unter Ubuntu 20.04
So installieren Sie Puppet unter MacOS

Puppenspieler

Der Puppet Master ist ein Daemon, der auf einem dedizierten Server läuft. Der Puppet Master ist als Serverknoten die Informationsquelle und Konfigurationsautorität. Der Master sendet Anweisungen an alle Agentenknoten und überwacht die Konfiguration des Systems.

Der Puppenspieler ist für folgende Aufgaben verantwortlich:

  • Erstellen eines Katalogs für die Agenten.
  • Dateiübertragungen von einem Dateiserver an Agenten.
  • Akzeptieren von SSL-Zertifikaten von Agenten.
  • Speichern von Konfigurationsmanifesten.

Puppet nutzt die Identitätszugriffsverwaltung über einen dedizierten Benutzer und eine Gruppe, um Sicherheit zu gewährleisten und den Agenten nur die erforderlichen Informationen zugänglich zu machen. Allerdings erfordern nicht alle Aktionen erhöhte Berechtigungen.

Marionettenagenten

Der Puppet-Agent ist ein Puppet-Daemon, der auf einem System oder Knoten ausgeführt wird. Agenten verfügen über bestimmte Berechtigungen auf dem Knoten, um vom Puppet Master abgerufene Konfigurationskataloge anzuwenden.

Um Kommunikationsberechtigungen zu erhalten, fordert ein Agent beim ersten Kontakt mit dem Master ein SSL-Zertifikat an. Das Zertifikat wird jedes Mal überprüft, wenn der Agent den Master vor dem Senden der Informationen nach Konfigurationsaktualisierungen fragt. Ein Master authentifiziert sich auch gegenüber den Agenten, um korrekte Konfigurationsinformationen sicherzustellen.

>

Puppet-Agenten ändern die Systemkonfiguration und benötigen Root-Berechtigungen, um Aufgaben auszuführen.

Puppet-Verschlüsselung und Kommunikationssicherheit

Puppet verwendet OpenSSL für Kommunikation und Sicherheit. Basierend auf SSL- und TLS-Protokollen verwendet Puppet standardmäßige SSL/TLS-Verschlüsselung und SSL-Zertifikate für die Agenten-/Master-Authentifizierung und -Verifizierung. Darüber hinaus verschlüsselt Puppet den Datenverkehr zwischen den Agenten und Servern mithilfe von SSL/TLS und verwendet SHA-256 als Standard-Hash.

Verschlüsselungsmethoden in Puppet stellen Folgendes sicher:

  • Master-/Agent-Authentifizierung und -Verifizierung.
  • Verhinderung von Datenschutzverletzungen zwischen Master und Agenten.

Der Master generiert sein eigenes CA-Zertifikat, seinen privaten Schlüssel, seine CRL (Certificate Revocation List) und ein Serverzertifikat. Das Serverzertifikat wird an Agenten gesendet, um die SSL- und TLS-Kommunikation zu ermöglichen.

Vorteile von Puppet und warum Sie es verwenden sollten

Puppet ist eines der ältesten und beliebtesten Automatisierungstools für das Konfigurationsmanagement. Im Folgenden sind fünf Vorteile aufgeführt, die gute Gründe für den Einstieg in die Nutzung von Puppet darstellen.

1. Open Source

Puppet ist Open Source, was die Technologie erweiterbar macht. Benutzerdefinierte Bibliotheken und Module bereichern einzelne Projekte passend zu Ihrem Anwendungsfall.

Open Source bietet außerdem den Vorteil einer aktiven Community. Zahlreiche Diskussionen, Foren und Experten stehen bereit, um zu helfen und Fragen zu beantworten.

phoenixNAP unterstützt die Open-Source-Community und gibt etwas zurück, indem es öffentliche GitHub-Repositories mit Modulen zur Automatisierung der Serverbereitstellung und -verwaltung verwaltet.

2. Ressourcenabstraktion

Konfigurationsaufgaben sind repetitiv und auf Servern mit unterschiedlichen Betriebssystemen sind aufgrund plattformspezifischer Schritte häufig dieselben Schritte erforderlich. Sich alle Befehle zu merken ist eine unmögliche Aufgabe.

Factor hilft Puppet, die Einzelheiten herauszufinden und eine Abstraktion zu erreichen. Systemspezifische Daten und Betriebssystemdetails sind Puppet dank Factor bekannt.

3. Idempotenz

Redundante Konfigurationen sind bei der Arbeit mit zahlreichen Servern ein komplexes Problem und Puppet zielt darauf ab, nur die Änderungen anzuwenden, die sich auf das System auswirken. Wenn der gewünschte Zustand der Infrastruktur erreicht ist, führt Puppet die Befehle nicht aus. Diese Puppet-Funktion wird als Idempotenz bezeichnet und trägt dazu bei, Redundanz zu reduzieren und die Effizienz zu steigern.

4. Plattformübergreifend

Puppet deckt ein breites Spektrum an Plattformen ab, was die Anzahl der Server im Konfigurationsautomatisierungsprozess erhöht. Das Tool funktioniert auf Windows, OS X, Debian-basierten Systemen, Fedora, Gentoo, RHEL und Solaris.

5. Flexibel

Die Puppet-Sprache bietet eine Möglichkeit, Anweisungen zu überschreiben und Ausnahmen für verschiedene Szenarien zu erstellen. Puppet hilft auch bei der regelmäßigen Planung spezifischer Wartungsaktionen.

Abschluss

Puppet ist ein leistungsstarkes Tool zum Verwalten von Konfigurationen und Serveraufgaben und eine ausgezeichnete Wahl für stabile Server, die sich nicht dynamisch oder häufig ändern.

Um zu sehen, wie Puppet im Vergleich zu anderen ähnlichen Technologien abschneidet, lesen Sie unseren Vergleichsartikel zu Terraform vs. Puppet.

Verwandte Artikel