Chef-Server auf Ubuntu 17.04 installieren

Einführung
Chef ist ein quelloffenes Konfigurationsmanagement-Tool, geschrieben in Ruby und Erlang. Es integriert sich leicht mit Cloud-Plattformen wie AWS, OpenStack oder Rackspace, um Server automatisch zu erstellen und zu verwalten. In größeren Umgebungen mit vielen Nodes ermöglicht Chef zentralisierte Verwaltung über einen Chef-Server, Chef-Workstations und Chef-Nodes.
Kurzdefinition: Node — ein verwalteter Rechner, der von Chef konfiguriert wird.
Wichtig: Ubuntu 17.04 ist keine LTS-Version. Für Produktionsumgebungen sollten Sie eine aktuell unterstützte LTS-Distribution in Betracht ziehen. Das hier gezeigte Paket in den Beispielen enthält einen Verweis auf Ubuntu 16.04; Kompatibilität auf 17.04 kann funktionieren, ist aber nicht garantiert. Prüfen Sie vor dem produktiven Einsatz offizielle Paketquellen.
Voraussetzungen
- Minimale Installation von Ubuntu 17.04.
- Root-Rechte (Anleitungen hier ausgeführt als root). Falls Sie als sudo-User arbeiten, führen Sie sudo -i aus.
- Eine Domain oder öffentliche IP, die auf den Server zeigt.
Update des Basissystems
Aktualisieren Sie Paketlisten und installieren Sie verfügbare Updates:
apt update && apt -y upgrade
Nach Abschluss fahren Sie mit der Konfiguration fort.
Hostname setzen
Chef benötigt einen auflösbaren Hostnamen (FQDN), z. B. chef.ihredomain.de. Setzen Sie den Hostname temporär und dauerhaft:
hostname 'chef.ihredomain.de'
Dauerhaft in /etc/hostname schreiben:
echo "chef.ihredomain.de" | tee /etc/hostname
Fügen Sie die IP-Adresse und den Hostnamen in /etc/hosts ein:
echo "192.168.1.1 chef.ihredomain.de" >> /etc/hosts
Ersetzen Sie 192.168.1.1 durch Ihre öffentliche IP-Adresse.
NTP einrichten
Chef ist empfindlich gegenüber Uhrzeitabweichungen; setzen Sie daher NTP auf allen beteiligten Systemen ein. NTP nutzt UDP-Port 123.
Installation und Start:
apt install ntp
systemctl start ntp
systemctl enable ntp
Überprüfen Sie die Synchronisation:
ntpq -p
Beispielausgabe (gekürzte Anzeige):
root@chef:~# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*chobi.paina.net 131.113.192.40 2 u 26 64 17 1.280 -1.852 1.046
Wichtig: Warten Sie, bis ein Server mit einem Sternchen (*) markiert ist — das zeigt eine aktive Synchronisation an.
Chef herunterladen und installieren
Laden Sie das Chef Server Paket herunter (Beispiel zeigt eine spezifische Version für Ubuntu 16.04):
wget https://packages.chef.io/files/stable/chef-server/12.15.8/ubuntu/16.04/chef-server-core_12.15.8-1_amd64.deb
Hinweis: Besuchen Sie die Chef-Downloadseiten, um die aktuellste, zur Distribution passende Paketversion zu finden. Installieren Sie anschließend:
dpkg -i chef-server-*.deb
Chef ist damit installiert, muss aber noch konfiguriert werden.
Chef konfigurieren
Starten Sie die initiale Konfiguration aller Chef-Server-Komponenten:
chef-server-ctl reconfigure
Der Vorgang kann mehrere Minuten dauern. Am Ende sollten Sie eine Bestätigung wie diese sehen:
Chef Client finished, 491/1096 resources updated in 03 minutes 13 seconds
Chef Server Reconfigured!
Status der Dienste prüfen:
chef-server-ctl status
Beispielausgabe (gekürzt):
run: bookshelf: (pid 6030) 87s; run: log: (pid 6047) 86s
run: nginx: (pid 5859) 91s; run: log: (pid 6387) 82s
run: postgresql: (pid 5718) 93s; run: log: (pid 5745) 92s
Web-Management-Konsole installieren
Die Webkonsole (Chef Manage) ermöglicht grafische Verwaltung von Data Bags, Run-Lists, Rollen, Umgebungen und Cookbooks.
Installieren und konfigurieren:
chef-server-ctl install chef-manage
chef-server-ctl reconfigure
chef-manage-ctl reconfigure
Um die Lizenz automatisch zu akzeptieren:
chef-manage-ctl reconfigure --accept-license
Administrator und Organisation anlegen
Erstellen Sie ein Verzeichnis zum Speichern der RSA-Schlüssel:
mkdir ~/.chef
Administrator anlegen:
chef-server-ctl user-create admin Chef Administrator [email protected] StrongPassword -f ~/.chef/admin.pem
Organisation anlegen:
chef-server-ctl org-create my_org 'My Organization' --association_user admin -f ~/.chef/my_org.pem
Passen Sie Benutzername, Vor-/Nachname, E-Mail, Passwort, Organisationskurzname und Pfade an Ihre Umgebung an.
Webkonsole öffnen
Öffnen Sie im Browser:
http://Your-Server-IP
Oder verwenden Sie Ihren Domainnamen, falls konfiguriert. Sie sollten das Anmeldebildschirm sehen.
Melden Sie sich mit dem zuvor erstellten Admin-Account an. Nach dem Login sehen Sie das Dashboard.
Optionale Plugins installieren
Reporting installieren:
chef-server-ctl install opscode-reporting
chef-server-ctl reconfigure
opscode-reporting-ctl reconfigure
opscode-reporting-ctl test
Push Jobs installieren:
chef-server-ctl install opscode-push-jobs-server
chef-server-ctl reconfigure
opscode-push-jobs-server-ctl reconfigure
Sicherheits- und Betriebs-Hinweise
Wichtige Empfehlungen für den Betrieb:
- Verwenden Sie HTTPS für die Webkonsole (nginx ist bereits installiert). Nutzen Sie Zertifikate (z. B. Let’s Encrypt) oder interne PKI.
- Öffnen Sie nur die benötigten Ports (80/443, 443 für API, SSH für Administration) und beschränken Sie das Management-Netzwerk per Firewall.
- Sichern Sie die generierten PEM-Schlüssel (z. B. ~/.chef/admin.pem) und limiten Sie deren Zugriffsrechte.
- Erstellen Sie regelmäßige Backups der Chef-Server-Datenbanken und des Filesystems.
Kompatibilität und Migrationstipps
- Prüfen Sie vor Installation, ob das Chef Server-Paket für Ihre Ubuntu-Version gebaut wurde. Falls nicht, nutzen Sie eine offiziell unterstützte Distribution oder einen Container.
- Für produktive Umgebungen sind LTS-Versionen von Ubuntu (z. B. 18.04/20.04) empfehlenswerter.
- Vor einem Upgrade des Chef Servers: Backup vornehmen, Release-Notes lesen und Upgrade-Pfade testen.
Kriterien bei Abnahme
- chef-server-ctl status zeigt alle benötigten Dienste als laufend an.
- Die Webkonsole ist über HTTPS erreichbar und Login funktioniert mit dem erstellten Admin-Account.
- Eine Organisation und ein Benutzer sind angelegt und die erzeugten PEM-Dateien sind vorhanden.
- NTP-Synchronisation ist aktiv (ntpq -p zeigt einen Peer mit *).
Schnell-Checks nach der Installation
- Dienste prüfen: chef-server-ctl status
- Admin-Keys vorhanden: ls -l ~/.chef
- Webzugriff testen: curl -I https://chef.ihredomain.de
- Push Jobs/Reporting: entsprechende ctl test-Kommandos ausführen
Troubleshooting: Häufige Fehler und Lösungen
Problem: chef-server-ctl reconfigure läuft lange oder bricht ab.
- Lösung: Log-Dateien prüfen (/var/log/chef-server/) und Netzwerk/DNS prüfen. Stellen Sie sicher, dass Hostname auflösbar ist.
Problem: Webkonsole nicht erreichbar.
- Lösung: Prüfen Sie nginx-Status (chef-server-ctl status) und Firewall-Einstellungen (ufw/iptables). Überprüfen Sie TLS-Zertifikatkonfiguration.
Problem: NTP zeigt keine Synchronisation.
- Lösung: Prüfen Sie Verbindung zu NTP-Servern, erlauben Sie UDP/123 in der Firewall und starten Sie den ntp-Dienst neu.
Rollback und Notfallmaßnahmen
Wenn die Installation scheitert oder inkonsistent ist:
- Stoppen Sie die Chef-Dienste: chef-server-ctl stop
- Sichern Sie Konfigurationsdateien und Datenbanken (PostgreSQL, bookshelf).
- Entfernen Sie das Paket nur, wenn Sie ein sauberes Reinstallationsszenario planen: dpkg -r chef-server-core
- Stellen Sie aus Backup wieder her oder installieren Sie eine funktionierende Paketversion.
Hinweis: Ein vollständiges Rollback erfordert oft die Wiederherstellung aus einem vorherigen Backup.
Rollenbasierte Checkliste
Systemadministrator:
- Hostname setzen und DNS überprüfen
- NTP konfigurieren
- Firewall-Regeln setzen
DevOps Engineer:
- Chef Manage und Reporting installieren
- Organisation und Nutzer anlegen
- Workstation für knife konfigurieren (SSH/PEM)
Security Officer:
- TLS für Webkonsole prüfen
- PEM-Dateien sicher ablegen
- Zugriffsrechte und Audit-Logs konfigurieren
Kurze Testfälle zur Abnahme
- Login mit Admin-Account klappt.
- Ein Beispiel-Cookbook hochladen und einer Test-Node zuweisen.
- Reporting zeigt mindestens einen Eintrag nach Chef-Client-Lauf.
Glossar (kurz)
- Chef-Server: Zentrale Komponente, die Konfigurationen und Informationen verwaltet.
- Workstation: Entwickler- oder Admin-Computer mit Werkzeugen wie knife.
- Node: Zielsystem, das vom Chef-Server konfiguriert wird.
Weitere Ressourcen
Besuchen Sie die offiziellen Chef-Dokumentationen und Release-Notes, um aktuelle Pakete und Sicherheitsinformationen zu erhalten.
Zusammenfassung
Dieses Tutorial führte Sie durch die Installation und Grundkonfiguration eines Chef-Servers auf Ubuntu 17.04. Es behandelt System-Updates, Hostname, NTP, Paketinstallation, Reconfiguration, Webkonsole, Admin-/Organisationsanlage, optionale Plugins, Sicherheits- und Troubleshooting-Tipps sowie Checklisten für Abnahme und Betrieb. Für produktive Umgebungen prüfen Sie die Kompatibilität mit Ihrer Distribution und bevorzugen unterstützte LTS-Versionen.
Wichtiger Hinweis: Verwenden Sie in Produktionsumgebungen stets unterstützte Betriebssystemversionen und halten Sie Backups und Sicherheitsmaßnahmen aktuell.
Ähnliche Materialien

Einstellungen-Icon im Startmenü wiederherstellen

Scrollleisten in Windows 10 & 11 anpassen

Automatische Sicherheitsupdates für Ubuntu 16.04

Android-App-Berechtigungen einschränken

Chef-Server auf Ubuntu 17.04 installieren
