Internet Information Services (IIS) über Chef konfigurieren


    Tags: ,

    Configuration-Management mit ChefDas Konfigurations-Manage­ment mit Chef funk­tioniert Plattform-übergreifend und lässt sich somit auch auf Dienste von Windows Server anwen­den. Die fol­gende An­leitung zeigt am Beispiel der Internet Information Services (IIS), wie man die Bereit­stellung einer Microsoft-Infrastruktur mit Chef automa­tisieren 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 grund­legende Kochbuch ist chef-client, das den Chef-Agent auf jedem Knoten konfiguriert, der sich mit dem Chef-Server verbindet.

    Normaler­weise sollte die Berks-Datei wie folgt aussehen.

    source 'https://supermarket.chef.io'
    cookbook 'chef-client'

    Die Berks-Datei aus dem Starter Kit von Chef

    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 Konfi­guration der Internet Information Services (IIS) hinterlegen:

    cookbook 'iis', '~> 7.1.1'

    Auch hier besteht der weitere Workflow darin, die Cookbooks herunter­zuladen und auf der Chef-Work­station 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

    Liste der auf dem Automate Server verfügbaren Cookbooks abfragen

    Liefen die Ziel-Instanzen unter Amazon Linux, könnte man sie an dieser Stelle in der GUI vollständig bootstrappen.

    Boot-Strapping von Nodes über die GUI der AWS-Konsole

    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.

    Rezepte über die Runlist festlegen, die ausgeführt werden sollen

    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 gleich­namige Ordner des verwen­deten Rezept­buch­ver­zeichnisses. Dann erstellt man dort ein Unter­verzeichnis 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 Unter­verzeichnis 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 Rezept­buchs 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 netzwerk­technisch erreichen kann. Der Rest läuft so ab, wie oben beschrieben.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Thomas Drilling

    Thomas Drilling arbeitet ist seit fast 30 Jahren selb­ständig in der IT-Welt sowohl als Consultant, als auch als Redakteur, Buchautor und Journalist für viele ehe­malige und aktuelle IT-Magazine sowie Blogs.

    Aktuell bestätigt sich Thomas schwerpunktmäßig als IT-Trainer für Cloud-Computing in den Bereichen Microsoft Azure, Amazon Web Services und VMware.

    Thomas ist zertifizierter Microsoft-Trainer für nahe das gesamte Portfolio an Microsoft Azure Trainings. Thomas ist außerdem zerti­fi­zierter Microsoft Azure Solutions Architect Expert sowie VMware Certified Professional und wurde von VMware in den Jahren 2016 bis 2022 mit dem Blogger-Status vExpert ausge­zeichnet.

    Thomas führt aktuell jeden Monat zwei selbstkonziperte 4-tägigen Grund­lagenkurse in Cloud Computing mit Azure durch, die sich inhaltlich bewusst von den Microsft-Kursen abheben und vorzuweise als Bootcamp in eine besonderen Lokation stattfinden. Optional kann aber aber auch remote via Microsoft Teams teilgenommen werden.

    Das aktuelle Trainingsprogramm findet sich unter Azure-Trainings. Weitere Infor­mationen und Anmel­dung über sein Azure-Blog.

    Verwandte Beiträge

    Weitere Links