Warum Puppet für die Automatisierung und Orchestrierung verwenden?

Puppet das Unternehmen stellt Puppet das Automatisierungstool als De-facto-Standard für die Automatisierung der Bereitstellung und des laufenden Betriebs der Hybridinfrastruktur in Rechnung. Das war sicherlich einmal wahr: Puppet geht nicht nur auf das Jahr 2005 zurück, sondern beansprucht derzeit 40.000 Organisationen weltweit als Benutzer, darunter 75 Prozent der Fortune 100. Puppet ist immer noch ein sehr starkes Produkt und hat seine Geschwindigkeit und Fähigkeiten gegenüber erhöht Im Laufe der Jahre haben die Konkurrenten, insbesondere der Küchenchef, die Lücke geschlossen.

Wie Sie es von der Doyenne des IT-Automatisierungsbereichs erwarten können, verfügt Puppet über eine sehr große Sammlung von Modulen und deckt den Bereich von CI / CD bis zur Cloud-nativen Infrastruktur ab, obwohl ein Großteil dieser Funktionalität durch zusätzliche Produkte bereitgestellt wird. Während Puppet in erster Linie ein modellbasiertes System mit Agenten ist, unterstützt es Push-Operationen mit Puppet-Aufgaben. Puppet Enterprise ist sogar als Service bei Amazon erhältlich.

Marionettenprodukte

Zu den aktuellen Puppet-Angeboten gehören Open Source Puppet, Puppet Enterprise, Puppet Pipelines, Puppet Discovery, Puppet Bolt, Puppet Container Registry und Puppet Forge. Open Source Puppet, eine automatisierte Administrations-Engine für Ihre Linux-, Unix- und Windows-Systeme, führt Verwaltungsaufgaben (z. B. Hinzufügen von Benutzern, Installieren von Paketen und Aktualisieren von Serverkonfigurationen) basierend auf einer zentralisierten Spezifikation aus.

Puppet Enterprise erweitert Open Source Puppet um Orchestrierungsfunktionen, eine Webkonsole und professionellen Support. Es hilft Ihnen, die Automatisierung breit und tief in Ihrer Infrastruktur zu skalieren und sie konform zu halten. Puppet Discovery erkennt traditionelle Infrastrukturen, Cloud-native Ressourcen und Container und lässt Sie diese verwalten.

Marionettenentwickler

Puppet Pipelines ist eine Plattform für kontinuierliche Integration / kontinuierliche Lieferung, die als gehosteter Service und als lokale Installation verfügbar ist. Es gibt zwei separate Versionen von Pipelines für Anwendungen und für Container mit Kubernetes.

Mit der Funktion "Marionettenaufgaben ohne Agenten" können Sie Ad-hoc-Aufgaben ausführen, im Gegensatz zur modellgesteuerten Automatisierung mit Agenten. Aufgaben gibt es in zwei Varianten: Open Source Puppet Bolt und Puppet Enterprise Task Management. Bolt ist für kleinere Infrastrukturen vorgesehen, während Enterprise Task Management, eine Komponente von Puppet Enterprise, für große Infrastrukturen vorgesehen ist, die eine rollenbasierte Zugriffskontrolle, Prüfpfade und teamorientierte Workflows benötigen.

Die Puppet Container Registry (ehemals Distelli Europa), die in den Versionen Free, Premium (oder Team) und Enterprise erhältlich ist, bietet eine einheitliche Ansicht der lokalen und Remote-Registrierungen für Docker-Container. Die Premium-Version bietet Mehrbenutzerunterstützung und Zugriffskontrolle. Die Unternehmensversion fügt Single Sign-On hinzu.

Marionettenschmiede

Puppet Forge ist ein Repository von Modulen für Open Source Puppet und Puppet Enterprise. Es enthält derzeit über 5.500 vorgefertigte Module. Einige Module haben Marionettenaufgaben, aber nicht alle. Einige Module werden von Puppet als Teil von Puppet Enterprise getestet und unterstützt, andere nur von Puppet.

Jedes Modul hat seine eigenen Voraussetzungen und Installationsverfahren. Ich werde nicht sagen "Hier sind Drachen", aber ich werde sagen, dass die Installation von Modulen ein Bereich ist, in dem Puppet nicht einmal versucht, seine Wurzeln als Werkzeug für Linux / Unix-Systemadministratoren zu tarnen, obwohl es Windows heutzutage ziemlich gut macht (außer als Meister).

Puppet Enterprise

Puppet Enterprise ist eine einheitliche Plattform, die einen modellgetriebenen Konfigurationsansatz mit einer zwingenden Aufgabenausführung kombiniert, sodass Sie die Hybridinfrastruktur verwalten können. Es unterstützt Entwicklungspraktiken wie Versionskontrolle, Codeüberprüfung, automatisierte Tests, kontinuierliche Integration und automatisierte Bereitstellung. Sie können Puppet auch verwenden, um Workloads in die Cloud, Container und Hybrid Cloud zu migrieren. Mit Puppet können Sie den gewünschten Status Ihrer Konfigurationen erzwingen, unerwartete Änderungen automatisch korrigieren und Ad-hoc-Aufgaben automatisieren.

Puppet Enterprise hilft dabei, die mit Sicherheitsfehlkonfigurationen und fehlgeschlagenen Audits verbundenen Risiken zu verringern, indem Ihre Sicherheitsrichtlinien kontinuierlich durchgesetzt und die Einhaltung nachgewiesen werden. Grundsätzlich sendet der Puppet Master automatisch jede halbe Stunde Kataloge an seine Clients (pusht sie), und die Puppet-Agenten auf den Clients vergleichen diesen Katalog dann mit Fakten zu seiner vorhandenen Konfiguration und übernehmen gegebenenfalls Änderungen. Anschließend senden die Agenten einen Statusbericht an den Master zurück, der einen allgemeinen Compliance-Bericht erstellen kann. Sicherheit und Compliance werden im Rahmen des Kernkonfigurationsmanagements von Puppet und nicht in einer separaten Komponente behandelt.

Marionette in der Wolke

Puppet Enterprise ist in die führenden Cloud-Dienstleister integriert: Amazon, Microsoft, VMware und Google. Sie können damit die Verwaltung von Rechen-, Speicher- und Netzwerkressourcen optimieren und Workloads in heterogenen Umgebungen skalieren. Die Funktionalität ist hauptsächlich in Cloud-spezifischen Modulen zu finden, beispielsweise im Puppetlabs / aws-Modul, das eine Schnittstelle zur AWS-API bietet und es Ihnen ermöglicht, nicht nur Instanzen bereitzustellen, sondern auch Ihre gesamte AWS-Infrastruktur zu beschreiben und die Beziehungen zwischen verschiedenen zu modellieren Komponenten.

Puppet Enterprise unterstützt derzeit keine Funktionen ohne Server. Puppet Pipelines, ein weiterer Teil des Portfolios, ist ein Tool zum Verwalten des Release-Lebenszyklus von Entwickler-App-Code, der Funktionen ohne Server enthalten kann.

Puppet Development Kit

Puppet ermöglicht eine umfassende benutzerdefinierte Entwicklung, indem Sie Ihre eigenen Module schreiben können. Es bietet jetzt ein Entwicklungskit, das das Generieren neuer Module erleichtert und das Konvertieren alter Module zur Kompatibilität mit dem Puppet Development Kit (PDK) ermöglicht. Das PDK enthält Testtools, eine vollständige Modulvorlage (als YAML-, Ruby- und eingebettete Ruby-Dateien) sowie Befehlszeilentools, mit denen Sie Tests für Puppet-Module erstellen, validieren und ausführen können.

Installation und Einrichtung der Puppe

Es gibt zwei Möglichkeiten, Puppet Enterprise tatsächlich zu installieren: Verwenden von AWS OpsWorks oder durch Herunterladen und Installieren selbst vor Ort oder in einer oder mehreren Cloud-Instanzen. (Die Verwaltung von bis zu 10 Knoten ist kostenlos.) Bevor Sie eine dieser Installationen ausprobieren, möchten Sie möglicherweise Puppet mit der Puppet Learning VM oder dem unten gezeigten Online-Puppet-Emulator lernen.

Mit AWS OpsWorks für Puppet Enterprise, einem verwalteten Dienst, können Sie einen vollständig konfigurierten Puppet-Master in weniger als 20 Minuten auf AWS ausführen. OpsWorks ist eine gute Wahl für kleine Teams und Geschäfte, die ihre eigene Puppet-Infrastruktur nicht verwalten können oder wollen.

Die grundlegenden Schritte zum Erstellen einer AWS OpsWorks for Puppet Enterprise-Instanz beginnen mit dem Herunterladen und Installieren der AWS CLI-, Git- und Puppet Enterprise-Clienttools. Erstellen Sie einen SSH-Schlüssel, richten Sie mit dem SSH-Schlüssel ein GitHub-Konto ein, melden Sie sich bei der AWS-Konsole an, rufen Sie den OpsWorks-Dienst auf und klicken Sie auf "Puppet Enterprise-Server erstellen". Geben Sie Ihrem Server einen Kurznamen, wählen Sie eine Region aus und wählen Sie den Instanztyp c4.large aus. Angenommen, Sie verwenden keinen SSH-Schlüssel (für AWS - dies hat nichts mit dem GitHub-SSH-Schlüssel zu tun), und stellen Sie einen Link zu Ihrem GitHub-Steuerelement-Repository bereit. Akzeptieren Sie die Standardeinstellungen auf der Seite mit den erweiterten Einstellungen, starten Sie Ihre Serverinstanz und laden Sie sowohl die Anmeldeinformationen als auch das Starter Kit herunter, bevor die Initialisierung der Instanz abgeschlossen ist. Der Rest von dem, was Sie brauchen, ist im Starter Kit,Zu diesem Zeitpunkt haben Sie jedoch bereits einen funktionierenden Master, der seine eigene Konfiguration erzwingt.

Die Installation von Puppet Enterprise selbst ist viel länger und komplizierter und führt Sie zu einem Upgrade, wenn Puppet eine neue Version veröffentlicht. Auf der anderen Seite können Sie die Serverressourcen nutzen, die Sie bereits besitzen.

Sie können Puppet Enterprise mit einem webbasierten oder textbasierten Installationsprogramm auf einem RHEL-, Ubuntu LTS- oder Suse Linux-System installieren, nachdem Sie den entsprechenden Tarball heruntergeladen und dessen Fingerabdruck überprüft haben. Sie müssen Ihre E-Mail-Adresse angeben, um den Link zu erhalten. Ich würde vorschlagen, mit einer webbasierten Mono-Installation (alles auf einem Knoten) zu beginnen und alle Standardeinstellungen zu übernehmen. Sie können später jederzeit ein Upgrade durchführen. Sie können die meisten Probleme vermeiden, wenn Sie mit einem neuen Linux-System-Image beginnen. Helfen Sie nicht, indem Sie beispielsweise PostgreSQL im Voraus installieren.

- -

Kosten: Open Source Puppet: kostenlos. Puppet Enterprise: 10 Knoten frei, 120 USD / Knoten / Jahr bis zu 500 Knoten mit Standardunterstützung. Puppet Discovery befindet sich derzeit in der technischen Vorschau. Puppet Pipelines: fünf Knoten frei, 29,99 USD / Knoten / Monat bis zu 100 Knoten mit Standardunterstützung.

Plattform: Master: Red Hat, SUSE oder Ubuntu Linux. Agenten: Linux, Windows Vista oder höher, MacOS 10.10 oder höher, Solaris 10 oder 11. Cloud-Master als AWS OpsWorks für Puppet Enterprise verfügbar.