AWS OpsWorks for Puppet Enterprise, Teil 1 Configuration Management mit Puppet in der AWS-Cloud
Neben Chef Server unterstützt AWS OpsWorks, der verwaltete Dienst für das Konfigurationsmanagement, seit Ende 2017 auch Puppet Enterprise. In unserem AWS-Puppet-Workshop führen wir Schritt für Schritt durch die Einrichtung, Konfiguration und Arbeitsweise.
Anbieter zum Thema

Konfigurationsdienste wie Puppet, Ansible oder Chef nehmen eine Schlüsselrolle bei der Automatisierung von IT-Deployments ein. Die Idee dahinter ist, vom Prinzip her identische Aufgaben bei der Ressourcenbereitstellung automatisch abzuarbeiten.
Der Nutzer, den wir im Folgenden wahlweise als Administrator, Entwickler oder DevOps-Spezialisten bezeichnen, befasst sich einmal intensiv mit der Konfigurationsmanagement-Lösung, um die Anwendungsbereitstellung effizienter zu gestalten. Die eingesparte Zeit lässt sich beispielsweise in die Ausarbeitung neuer Funktionen stecken, was ziemlich genau der Intention hinter der Begrifflichkeit „DevOps“ entspricht.
Dies gilt für physische Systeme gleichermaßen wie für die Cloud, wobei sich DevOps-Szenarien in der Cloud einfacher und in der Regel auch kostengünstiger umsetzen lassen. So hält z. B. AWS mit OpsWorks einen vollständig verwalteten Service bereits, mit dessen Hilfe sich Chef oder Puppet auf sehr einfache Weise implementieren lassen.
Deklarativ versus imperativ
Puppet und Chef sind die beiden führenden quelloffenen Lösungen für das Konfigurationsmanagement. Ein wesentlicher Unterschied: Die in Form von Puppet-Manifesten oder Chef-Cookbooks verwendete DSL (Domain-Specific Language) bei Puppet ist deklarativ (ähnlich wie bei AWS CloudFormation). Chef wiederum verwendet einen imperativen Ansatz.
Während der DevOps-Ingenieur also in einem Chef-Cookbook eine Reihe von Befehlen definiert, die in angegebener Reihenfolge abgearbeitet werden müssen, muss er in einem Puppet-Manifest den gewünschten „Endzustand“ beschreiben und dann die Arbeitsschritte festlegen, die zum Erreichen dieses Zustands führen, wobei sich Ressourcen mit Hilfe von Abhängigkeiten verbinden lassen.
AWS OpsWorks
AWS OpsWorks ist ein verwalteter Service zur Konfigurationsverwaltung, mit dessen Hilfe AWS-Nutzer ihre Anwendungen in der Cloud wahlweise mit Hilfe von Puppet oder Chef konfigurieren und ausführen können. Schon seit geraumer Zeit erlauben die beiden Variante „AWS OpsWorks-Stacks“ und „AWS OpsWorks for Chef Automate“ das Verwenden von Chef-Rezepten (Cookbooks) und -Lösungen für das Konfigurationsmanagement. Weitere Details zu AWS OpsWorks für Chef Automate haben wir eigens verarbeitet.
Seit November vergangenen Jahres ist es mit Hilfe der Variante OpsWorks for Puppet Enterprise außerdem möglich, einen Puppet Enterprise Master Server in AWS zu konfigurieren. Puppet stellt eine Reihe von Werkzeugen zur Verfügung, mit denen DevOps-Teams den „gewünschten“ Zustand ihrer Infrastruktur erzwingen sowie On-Demand-Aufgaben automatisieren können.
Was ist AWS OpsWorks für Puppet Enterprise?
Mit AWS OpsWorks for Puppet Enterprise kann der Nutzer einen von AWS verwalteten Puppet-Master-Server konfigurieren. Dieser verwaltet dann sämtlichen Knoten der eigenen Infrastruktur, auf denen die Puppet-Client-Agenten laufen. Das müssen nicht zwingend EC2-Instanzen sein, auch physische Knoten werden unterstützt.
Ein Puppet-Master-Server speichert Informationen über den betreffenden Knoten, nimmt aber auch die Rolle eines zentralen Repositories für Puppet-Module ein. Unter Modulen wiederum versteht der Master-Server wiederverwendbare Einheiten aus Puppet-Code, die ihrerseits die Anweisungen dafür bereithalten, wie die eigene Infrastruktur zu konfigurieren ist.
Darüber hinaus kann der Benutzer jederzeit Community-Module aus Puppet Forge oder auch das Puppet Development Kit zum Erstellen eigener angepasster Module verwenden, um seine eigene Bereitstellung mit dem Puppet Code Manager zu verwalten. Konkret besteht OpsWorks for Puppet Enterprise neben dem vollständig verwalteten Puppet-Master aus einem Paket von Automatisierungstools, mit deren Hilfe der Nutzer seine Applikationen bereitstellen und betreiben kann.
AWS OpsWorks for Puppet Enterprise bietet dem Admin zudem eine Benutzeroberfläche, die ihm Informationen über Knoten oder seine Puppet-Aktivitäten anzeigt. Die Möglichkeiten der Automatisierung erstrecken sich auf das Konfigurieren, Bereitstellen und Verwalten von Knoten.
Die Konfiguration dieser Nodes umfasst auch Aufgaben wie die Software- und Betriebssystemkonfiguration, das Installieren von Paketen, das Einrichten von Datenbanken sowie Änderungsmanagement und Richtliniendurchsetzung. Somit kann man von einer Full-Stack-Automatisierung sprechen.
Architektur von AWS OpsWorks for Puppet Enterprise
AWS-Admins können binnen weniger Minuten einen von AWS verwalteten Puppet-Enterprise-Master an den Start bringen, ohne sich um dessen Verwaltung (Software-Upgrades, Sicherungen, Wiederherstellungen etc.) kümmern zu müssen. Stattdessen können sie sich vollständig auf die Verwaltungsaufgaben der Kernkonfiguration in der Enterprise-Konsole konzentrieren.
Dabei erlaubt es AWS OpsWorks for Puppet Enterprise wie erwähnt, dieselben Konfigurationen für lokale Infrastruktur und Cloud-Infrastruktur zu verwalten, sofern die netzwerktechnischen Voraussetzungen gegeben sind. Das wiederrum ermöglicht ein effizientes Skalieren aller Abläufe in einer hybriden Umgebung.
Jeder Puppet-Master verwaltet die Konfiguration von Knoten in der Umgebung des Nutzers, indem er Konfigurations-Kataloge für die Puppet-Agent-Software der zu verwaltenden Knoten bereitstellt und als zentrales Repository für sämtliche Puppet-Module fungiert. Jeder Master läuft auf einer gewöhnlichen EC2-Instanz und wird von AWS automatisch so konfiguriert, dass immer die aktuellsten Versionen von Amazon Linux (derzeit 2017.09) und Puppet Enterprise Master (Version 2017.3.x) zum Einsatz kommen.
Sind neuere Versionen der Puppet-Software verfügbar, aktualisiert die Systemwartung die Version von Puppet Enterprise automatisch auf dem Server, sofern dieser den AES-Test bestanden hat, denn AWS führt vor der Aktualisierung umfangreiche Tests durch, damit für Produktion bereite Puppet-Upgrades keine bestehenden Kundenumgebungen beeinträchtigen.
Automatische Sicherung
Nutzer können jeden lokalen Computer oder jede EC2-Instanz mit einem in der Puppet-Enterprise-Dokumentation gelisteten unterstützten Betriebssysteme verbinden, sofern diese Netzwerkzugriff auf einen AWS OpsWorks for Puppet Enterprise-Master haben. Die Agent-Software wird dann vom Puppet-Master auf den zu verwaltenden Knoten installiert.
Da der Dienst auf Enterprise-Software fokussiert ist, lässt sich der Server automatisch zu einem beliebigen Zeitpunkt sichern. Ferner kann der Nutzer bei Bedarf mittels Amazon EC2 Auto-Scaling-Gruppen dem Server neue Amazon EC2-Knote nzuordnen. AWS OpsWorks for Puppet Enterprise erstellt Ressourcen, die mit Ihren Puppet-Mastern verknüpft sind, wie z. B. B. IAM-Benutzer, Service-Rollen im gleichen regionalen Endpunkt wie der Puppet-Master.
(ID:45281611)