Konfigurations-Management mit Chef: Automate-Server einrichten

    Chef Automate LogoAnstatt eine kom­plexe Infra­struktur für das Configuration Manage­ment mit Chef selbst einzu­richten, kann man Chef Automate als Service über AWS OpsWorks buchen. Damit lassen sich auch On-Prem-Systeme ver­walten. Dieser Beitrag be­schreibt die Bereit­stellung von Chef Automate in der Amazon-Cloud.

    Ähnlich wie bei Puppet mit Puppet-Labs steht auch hinter der Open-Source-Software chef.io mit Chef ein kommerziell agierenden Unter­nehmen, dass sein Geld mit Support, Abonnements, Trainings und der kommer­ziellen Variante Chef Automate verdient. Diese packt die Open-Source-Einzel­bestandteile Chef Workstation, Habitat, InSpec & Co in eine funktionale GUI.

    Folgende Abbildung zeigt den Aufbau einer für den Chef-Betrieb geeigneten Architektur und das Zusammenspiel der beteiligten Komponenten:

    Architektur und Komponenten von Chef

    Hierbei werden die von Chef verwalteten virtuellen oder physischen Server als Knoten bezeichnet. Ein Server oder eine VM wird in dem Moment zu einem Knoten, sobald der Chef-Agent installiert ist. Der chef-client fragt die vom Chef-Server bereit­gestellten Repositories nach neuen Rezepten ab und imple­mentiert ggf. die Änderungen.

    Die Chef-Workstation hingegen ist ein gewöhnlicher Host, der als Steuer­zentrale dient und bei Bedarf diverse Chef-CLI-Tools wie knife ausführt, etwa zum Über­tragen lokal erstellter Cookbooks auf den Chef Server, respektive in das von ihm verwaltete Repository.

    Chef-Bereitstellung

    Das Chef-Quickstart-Tutorial beschreibt das Aufsetzen der kompletten Chef-Infrastruktur auf Basis eines von Docker Compose orchestrierten Docker-Container-Clusters, wahlweise unter Windows, Linux oder Mac OS.

    Wir verwenden dagegen hier statt­dessen Chef Automate, weil damit das Einrichten einer geeigneten Infrastruktur deutlich schneller zu bewerk­stelligen ist. Auch hierzu stellt Chef sehr informative Tutorials bereit.

    Nichts­destotrotz ist das Aufsetzen einer Infra­struktur für das Konfigurations-Management ein komplexer Vor­gang, zumal auch der Konfigurations-Server selbst hoch­verfügbar und skalier­bar aus­gelegt werden muss.

    AWS OpsWorks for Chef Automate

    Da kommt es für viele Unternehmen gerade recht, dass Amazon Web Services Chef Automate auch als verwalteten Dienst AWS OpsWorks for Chef Automate anbietet. Dieser bietet nicht nur den Vorteil, dass sich der Kunde um den Betrieb der Infrastruktur nicht kümmern muss.

    Zudem bezahlt man, wie bei AWS üblich, nur für die in Anspruch genommenen Knotenstunden, d. h. die Kosten für OpsWorks für Chef Automate richten sich nach der Anzahl an Knoten, die mit dem Chef-Server verbunden sind, und der Laufzeit.

    Zusätzlich berechnet AWS natürlich die vom Chef-Server beanspruchte EC2-Instanz, also reine Compute-Kosten. Stoppt oder terminiert man diese Instanz, fallen auch keine Kosten mehr an.

    Das Bereitstellen des Chef-Automate-Servers gelingt dabei sehr einfach, wahlweise via CLI oder Management Console, sofern ein paar elementare Voraus­setzungen erfüllt sind:

    Hat man ein AWS-Konto und ist als root oder entsprechend berechtigter IAM-User angemeldet, dann legt man eine Service-Rolle wie folgt an:

    • Hierzu klickt man zuerst in der IAM-Konsole unter Roles auf Create Role
    • Dann wählt man im Abschnitt Choose the service that will use this role den Eintrag OpsWorks
    • Dadurch erscheint direkt darunter bei Select your use case der Eintrag OpsWorks => Allow OpsWorks to ceate AWS resources on your behalf
    • Schließlich klickt man auf Add permissions, um zu sehen, dass durch die Use-Case-Voraus­wahl die Permission AWSOpsWorksRole angehängt wird.

    Neue Service-Rolle für AWS OpsWorks erzeugen

    Mit Next: Tag kann man, wenn man möchte, an die Rolle noch ein Key-Value-Pair als Bezeichner anhängen und nach einem erneuten Klick auf Review den eigentlichen Rollen­namen bei Role name festlegen.

    Die weiteren Voraus­setzungen zum Beispiel hinsichtlich der zu verwen­denden VPC sind moderat (siehe: Amazon Virtual Private Cloud (VPC): Funktionsweise und Limitierungen). Man braucht lediglich ein öffentliches Subnetz mit aktivierter DNS-Auflösung.

    Außerdem muss das Subnetz mit Auto-assign public IP konfiguriert sein. Man kann aber auch einfach die vorhandene Default-VPC verwenden, bei der sämtliche Voraus­setzungen erfüllt sind.

    Chef Automate Server bereitstellen

    Das Einrichten eines Schlüsselpaares für die EC2-Instanz des Chef Automate Servers ist optional. Sind die Voraus­setzungen bis hierher erfüllt, klickt man in der AWS OpsWorks-Console auf Go to OpsWorks for Chef Automate und dort auf Create Chef Automate server. Hier vergibt man für ihn einen Namen, wählt die gewünschte Zielregion und eine der drei angebotenen EC2 instance type-Größen.

    Auswahl des EC2-Instanzryps für Chef Automate

    Es folgt der optionale Schritt, einen vorhandenen SSH-Key anzugeben, um etwa den Chef-Automate-Server bei Bedarf manuell pflegen zu können.

    Auswahl eines SSH-Schlüssels

    Im Schritt Configure advanced settings schließlich benötigt man die Angaben, die oben als Setup-Voraus­setzungen genannt sind, wie VPC, Subnet (public), Security groups, Service Role und Instance profile.

    Erstellt man eine EC2-Service-Rolle auf der GUI (Management Console), dann wird im Unterschied zur CLI das zugehörige Instanz­profil automatisch mit gleichem Namen erstellt. Beide dienen jedoch dem gleichen Zweck:

    Das Instanz-Profil steht dabei stell­vertretend für eine EC2-Instanz (Entität/"Wer"), die eine Rolle - hier die EC2-Service-Rolle mit ihren Berechtigungen - annehmen kann ("Was" darf mit welchen Ressourcen wie und wann getan werden).

    Letztere und damit auch das Instanz-Profil haben wir in der Demo oben separat erzeugt, allerdings lassen sich sowohl Service Role, Instance Profil sowie Security groups auch an dieser Stelle im Bereit­stellungs­assistenten erzeugen ("Generate a new one").

    Schließlich kann bzw. muss man ähnlich wie bei AWS RDS noch ein Wartungs­fenster definieren, innerhalb dessen AWS das System Maintenance und automatische Backups für den Chef Automate Server ausführt.

    Festlegen eines Wartungsfensters in den erweiterten Einstlelungen für Chef Automate

    Nach der darauf folgenden Zusammen­fassung klickt man dann auf Launch, und der erste Chef-Automate-Server steht in einigen Minuten zur Verfügung.

    In der Zwischenzeit kann man sich auf der Bereitstellungs­seite mit Hilfe der beiden Schaltflächen Download credentials und Download Starter Kit die Anmelde­informationen für das Chef Automate Dashboard und das so genannte Starter Kit herunter­laden.

    Während AWS den Automate-Server erstellt, können Anwender bereits die Credentials und das Starter Kit herunterladen.

    Dazu muss man wissen, dass AWS OpsWorks diese Anmelde­informationen nicht speichert. Sie werden daher an dieser Stelle zum letzten Mal angezeigt und zum Download angeboten. Nachdem der Server online ist, kann man sich am Chef Automate-Dashboard anmelden und das Passwort ggf. ändern.

    Sollte man das Passwort vergessen, kann man komplett neue Anmelde­informationen generieren, wobei man aber seine bisherige Konfiguration verliert, oder das Password zurücksetzen.

    Bei jedem neuen Download des Starter Kits wird übrigens ein neues Schlüsselpaar generiert und zurückgesetzt. Der Nutzer sollte daher mit dem Herunterladen dieser Elemente keinesfalls warten, bis der Server online ist.

    Nach Abschluss der Erstellung ist Ihr Chef-Server auf der AWS OpsWorks for Chef Automate-Homepage mit dem Status online verfügbar. Erst dann ist auch das Chef Automate-Dashboard auf der Server-Domäne mit einer URL im Format https://your_server_name-random.region.opsworks-cm.io zugänglich.

    Nach dem erfolgreichen Erstellen des Automate-Servers zeigt das OpsWorks-Dashboard einen Link zum Chef-Dashboard an.

    Die URL für die Anmeldeseite ist im OpsWorks-Dashboard ersichtlich.

    Anmelden an Chef Automate

    Auf der Public-IP hostet die unterliegende EC2-Instanz nämlich keinen öffentlich erreichbaren Web-Dienst. Nach dem Anmelden könnte man später in seinen Chef-Automate-Server die verwalteten Knoten sehen und admini­strieren.

    Willkommen-Bildschirm nach der ersten erfolgreichen Ameldung an Chef Automate

    Hierzu meldet man sich mit den Credentials an, die man im Verlauf der Bereitstellung des Chef-Automate-Servers herunter­geladen hat. Baut man zum ersten Mal eine Verbindung mit der Dashboard-Website auf, erscheint wie üblich eine Zertifikats­warnung des Browsers.

    Möchte man diese nicht immer ignorieren, kann man ein AWS OpsWorks-spezifisches, CA-signiertes SSL-Zertifikat auf dem Client-Computer installieren, der zum Verwalten des Chef-Servers dient. Ist der Client ein Linux- oder MacOS-System, dann lädt man von S3 die Pem-Datei herunter. Für Windows stellt AWS in S3 eine P7B-Datei bereit.

    Keine Kommentare