Tags: Web-Server, Configuration-Management
Das Konfigurations-Management mit Chef funktioniert Plattform-übergreifend und lässt sich somit auch auf Dienste von Windows Server anwenden. Die folgende Anleitung zeigt am Beispiel der Internet Information Services (IIS), wie man die Bereitstellung einer Microsoft-Infrastruktur mit Chef automatisieren kann.
Zur Erinnerung: Das Starter Kit enthält eine Datei namens Berksfile. Darin bearbeitet man einfach die Liste der Cookbooks, die verwenden werden sollen. Das grundlegende Kochbuch ist chef-client, das den Chef-Agent auf jedem Knoten konfiguriert, der sich mit dem Chef-Server verbindet.
Normalerweise sollte die Berks-Datei wie folgt aussehen.
source 'https://supermarket.chef.io'
cookbook 'chef-client'
Wie man sieht, stammt das Cookbook chef-client aus dem Chef-Supermarket. Auf die gleiche Weise lässt sich auch das Cookbook zur Bereitstellung und Konfiguration der Internet Information Services (IIS) hinterlegen:
cookbook 'iis', '~> 7.1.1'
Auch hier besteht der weitere Workflow darin, die Cookbooks herunterzuladen und auf der Chef-Workstation zu installieren. Danach kann man sie mit dem folgenden Befehl auf den Chef Automate-Server hochladen:
berks install && berks upload
Überprüfen kann man die auf dem Chef Automate Server verfügbaren Kochbücher dann mit
knife cookbook list
Liefen die Ziel-Instanzen unter Amazon Linux, könnte man sie an dieser Stelle in der GUI vollständig bootstrappen.
Darunter versteht man den Prozess, der den Chef-Agent auf einem Zielsystem installiert, so dass dieses als Chef-Client fungiert und mit dem Chef-Server kommunizieren kann. Eine entsprechende Schaltfläche Bootstrap nodes steht direkt im OpsWorks-Dashboard bereit.
Die auszuführenden Rezepte gibt man dann bei Run list an. Anschließend prüft man im Dashboard von Chef Automate Server, ob die betreffenden Knoten tatsächlich hinzugefügt wurden.
Achtung: Von der initialen Bereitstellung abgesehen, wird eine Konfigurationsänderung via Chef in AWS dafür sorgen, dass zum Beispiel eine EC2-Instanz tatsächlich "ge-bootstrapped" und nicht ersetzt wird. Windows-Instanzen hingegen müssen via CLI oder CloudFormation bereitgestellt werden.
Windows und Chef in AWS OpsWorks
Zurück zum Windows-Cookbook. Um konform mit unseren Linux-Beispiel und dem Wrapper-Cookbook zu bleiben, können wir aber auch wie folgt vorgehen: Chef stellt ein fertiges IIS-Rezeptbuch auf Github zur Verfügung, das Nutzer zum Verwalten der IIS verwenden können.
Dieses lädt man als ZIP-Datei herunter oder klont es mit einem lokalen git-Client. Auf gleiche Weise bezieht man von dort das Repository chef_handler. Da es vom Rezeptbuch windows abhängt, wird es nicht direkt verwendet, sondern mit Hilfe der erläuterten Wrapper-Technologie.
Dazu entpackt man beide Rezeptbücher windows und chef_handler in gleichnamige Ordner des verwendeten Rezeptbuchverzeichnisses. Dann erstellt man dort ein Unterverzeichnis install-iis, öffnet es und fügt die Datei metadata.rb mit dem folgenden Inhalt zu install-iis hinzu:
name "install-iis"
version "0.1.0"
depends "windows"
Wie oben erwähnt, dient die Anweisung depends dazu, die Ressourcen im Rezeptbuch windows aus dem Supermarket in eigenen Rezepten verwenden zu können. Jetzt erstellen wir ein Unterverzeichnis recipes in install-iis und legen eine Datei default.rb mit folgendem Inhalt als Code für das neue Rezept an:
Das Rezept installiert mithilfe der Ressource windows_feature des Rezeptbuchs aus dem Supermarket namens windows die beiden Komponenten IIS-Webserver-Rolle und IIS-Webserver. Dann startet und aktiviert das Rezept mithilfe einer service-Ressource den IIS-Service (W3SVC).
Um das Beispiel umzusetzen, muss auf der betreffenden Windows-EC2-Instanz der Chef-Client laufen. Zu Erinnerung. Die gelingt entweder durch Bootstrapping mittels knife von einer Chef-Workstation aus, die das Ziel netzwerktechnisch erreichen kann. Der Rest läuft so ab, wie oben beschrieben.
Täglich Know-how für IT-Pros mit unserem Newsletter
Thomas Drilling arbeitet seit mehr als 20 Jahren selbständig als Redakteur und Autor für viele ehemalige und aktuelle IT-Magazine sowie Blogs. Thomas ist zudem Buchautor und IT-Consultant.
Seit 5 Jahren ist Thomas neben seiner journalistischen Tätigkeit hauptberuflicher, selbständiger IT-Trainer für VMware und Microsoft.
Seine Themenschwerpunkte sind Virtualisierung und Cloud Computing, speziell VMware, Amazon Web Services, Google Cloud und Microsoft Azure. Thomas ist zertifizierter VMware Professional, Advanced Professional und wurde von VMware in den Jahren 2016, 2017, 2018, 2019 und 2020 mit dem Blogger-Status vExpert ausgezeichnet.
Thomas ist außerdem zertifizierter AWS Solutions Architect, Sysops Engineer und Devops Engineer sowie Microsoft Certified Azure Administrator.
Thomas führt aktuell jeden zweiten Montag einen 4-tägigen Grundlagenkurs in Cloud Computing mit AWS via Zoom-Meeting durch. Weitere Informationen und Anmeldung über sein AWS-Blog.
Ähnliche Beiträge
- Konfigurations-Management: Web-Anwendung auf Apache mit Chef konfigurieren
- Web-Anwendungen über Azure App Services (hochverfügbar) betreiben
- Windows Server automatisch in einer VM installieren mit AutomatedLab
- Cloud-Deployments mit Vorlagen für Azure Resource Manager (ARM) konfigurieren
- Drucker im Firmennetz für externe Mitarbeiter über Internet Printing freigeben
Weitere Links