Vasyl - stock.adobe.com
So setzen Admins Chef im Rechenzentrum ein
Mit Chef können Server und Arbeitsstationen automatisiert bereitgestellt werden. Dieser Beitrag beschreibt erste Schritte mit dem Open-Source-Programm auf CentOS 8 und RHEL 8.
Um Chef im Netzwerk einzusetzen, benötigen Sie zunächst einen Chef-Server. Wir beschreiben die Vorbereitungen und Installation von Chef auf CentOS 8, beziehungsweise RHEL 8 (Red Hat Enterprise Linux). Sie funktioniert jedoch auf den meisten Linux-Distributionen ähnlich.
Chef-Server speichern Richtlinien und Cookbooks. Außerdem sind hier die Metadaten der angebundenen Computer zu finden, damit Nutzer sie durchsuchen können. Die angebundenen Computer melden sich regelmäßig beim Chef-Server, um zu überprüfen, ob die hinterlegte Konfiguration noch übereinstimmt oder angepasst werden muss. Cookbooks, also Kochbücher, sind die Konfigurationssammlungen von Chef – also Koch. Sie lassen sich unabhängig vom Chef-Server erstellen, müssen aber auf diesen übertragen werden. Die einzelnen Computer, die von Chef automatisiert werden, verbinden sich über den Chef-Client mit dem Chef-Server.
Vorbereitungen treffen
Vor der Installation von Chef auf einem Server mit CentOS 8 oder RHEL 8 müssen Sie zunächst darauf achten, dass der Server möglichst aktuell ist. Idealerweise sollten Sie dem Server gleich einen vernünftigen Namen geben, zum Beispiel chef.joos.int. Die Einstellungen dazu können Sie im Terminal vornehmen:
sudo hostnamectl set-hostname chef.joos.int --static
Wenn die Namensauflösung nicht über DNS durchgeführt wird, zum Beispiel in einer Testumgebung, kann es sinnvoll sein den Namen auf den beteiligten Computern in der Hostdatei einzutragen, zum Beispiel mit Nano oder vi:
sudo nano /etc/hosts
Hier geben Sie die IP-Adresse und den Namen des Servers ein. Anschließend sollten Standardpakete auf dem Server aktualisiert und der Server neu gestartet werden:
sudo dnf -y update
sudo reboot
Die Uhrzeit sollte auf einem Chef-Server immer möglichst genau gestellt sein, da viele Aufgaben in Chef abhängig von der Uhrzeit laufen.
Chef-Server installieren
Für die Installation von Chef sollte zunächst die aktuelle Version heruntergeladen werden. Dazu können Sie auch wget nutzen. Welche Version aktuell ist, lässt sich auf der Download-Seite von Chef prüfen. Danach laden Sie die RPM-Datei für die Installation herunter und starten diese mit dem Befehl sudo dnf localinstall <Name der Datei>, zum Beispiel sudo dnf localinstall chef-server-core-14.0.65-1.el7.x86_64.rpm. Nach wenigen Sekunden sollte das Terminal Ihnen die erfolgreiche Installation bestätigen (Abbildung 1).
Nun können Sie mit der Konfiguration beginnen. Dazu verwendet man sudo chef-server-ctl reconfigure. Akzeptieren Sie die Lizenzbedingungen und absolvieren Sie den Setup-Prozess. Sie sollten dann eine Meldung über den erfolgreichen Abschluss erhalten (Abbildung 2).
Nachdem Sie Chef erfolgreich eingerichtet haben, sollten Sie mit sudo chef-server-ctl status zunächst überprüfen, ob die einzelnen Dienste von Chef laufen. Um sicherzustellen, dass Chef Zugriff über das Netzwerk hat, können Sie außerdem sicherstellen, dass der Zugriff auf HTTP und HTTPS nicht blockiert ist.
Zur Verwaltung von Chef können Sie als Nächstes den Admin für die Steuerung und Konfiguration anlegen. Auch verwenden Sie chef-server-ctl. Die einzelnen Werte können direkt mit dem Befehl eingegeben werden. Sie können die Werte aber auch als Variable speichern und danach den Befehl mit den Variablen ausführen:
sudo chef-server-ctl user-create <Benutzername> <Vorname> <Name> <Benutzer> <Kennwort>
Die angelegten Nutzer können Sie sich mit sudo chef-server-ctl user-list anzeigen lassen. Als oberste Ebene dient in Chef die Organisation. Auch diese muss zunächst angelegt werden, zum Beispiel mit:
chef-server-ctl org-create joos “Joos IT” --association_user thomas --filename joos-validator.pem
Die erstellte Organisation können Sie mit sudo chef-server-ctl org-list abrufen. (Abbildung 4)
Dabei gilt es zu beachten, dass in den angegebenen Verzeichnissen die RSA-Schlüssel (Rivest-Shamir-Adleman-Algorithmus) hinterlegt sind. Sie sind in PEM-Dateien gespeichert, die beim Anlegen von Benutzern und Organisationen erstellt wurden.
Chef Workstation und Knife installieren
Um Chef zu verwalten, auch aus der Ferne, installieren Sie Chef Workstation. Dazu laden Sie die neuste Version herunter. Sie ist für viele Betriebssysteme, auch Windows und macOS erhältlich. Die Installation erfolgt ähnlich, wie die Installation des Chef-Servers:
sudo yum localinstall chef-workstation-20.10.169-1.el7.x86_64.rpm
Zusätzlich zu Chef Workstation gibt es auch noch Knife (Messer) für die Chef-Verwaltung. Bei Knife handelt es sich um eine Kommandozeile (Command Line Interface, CLI) mit der Sie eine Kommunikation zwischen der Chef Workstation und dem Chef-Server aufbauen. Nach der Installation auf einem Linux-Computer können Sie im Terminal mit chef --version überprüfen, ob Chef Workstation installiert ist und funktioniert. Ob Knife installiert ist, lässt sich mit knife --version überprüfen.
Die Cookbooks und Richtlinien für Chef werden normalerweise auf einem Computer entwickelt, auf dem Chef Workstation installiert ist. Dazu erstellen Sie zunächst ein Verzeichnis für das Chef-Repository auf dem Computer:
chef generate repo chef-repo
Mit cd chef-repo wechseln Sie in das Verzeichnis. Im Verzeichnis befinden sich einige Standardverzeichnisse und Daten, die Sie für die Arbeit mit Chef benötigen. Um mit Knife zu arbeiten, können Sie innerhalb des Chef-Repo-Verzeichnisses ein Unterverzeichnis für Knife erstellen. Die Konfigurationsdatei für Knife mit der Bezeichnung knife.rb wird in diesem Verzeichnis abgelegt. Auch diese Konfigurationsdatei können Sie mit vi oder nano bearbeiten. Eine Hilfe zu Knife erhalten Sie mit dem Befehl knife --help. Um zum Beispiel Informationen zu einem Chef-Benutzer anzuzeigen, können Sie den Befehl knife user show USER_NAME verwenden.
Zu Chef Workstation gehören verschiedene Tools, die bei der Arbeit mit Chef Unterstützung bieten, zum Beispiel für das Erstellen von Workflows. Die Chef Cli ermöglicht das Erstellen von Workflows mit Chef. Das Tool ChefSpec hilft dabei Ressourcen auch lokal zu testen.
Um bessere Chef-Cookbooks zu schreiben, kann Cookstyle genutzt werden. Das Tool gibt Hinweise und korrigiert falsche geschriebene Befehle. Berkshelf, schließlich, ist ein Abhängigkeitsmanager für Chef-Cookbooks. Dieses Werkzeugt hilft dabei Community-Cookbooks zu verwenden und im eigenen System zu implementieren.