Installiere und konfiguriere Foreman unter Ubuntu

Du beziehst deinen Server von unserem Panel und suchst eine Lösung, mit ein paar Mausklicks oder einem Kommandozeilen-Aufruf ein System hochzuziehen? Das danach keine Konfigurationsarbeiten mehr benötigt, sondern produktiv nutzbar ist? Und eine Möglichkeit, sich wiederholende Aufgaben zu automatisieren, Anwendungen schnell bereitzustellen und Server von überall zu verwalten? Dann bist du bei diesem Tutorial richtig. Foreman installieren und richtig konfigurieren ist mit der richtigen Anleitung schnell und unkompliziert. Zusätzlich erhältst du einen ersten Einblick in das Web-UI von Foreman.

Wir gehen die Konfiguration anhand der Cloud Server von gridscale durch, du kannst die Anleitung aber auch auf jeden anderen Cloud-Provider einfach übertragen.

Einleitung Foreman

Foreman ist ein vollständiges Lifecycle-Management-Tool für physische und virtuelle Server. Es gibt Orchestrierungstools wie Chef, Puppet und Saltstack, die dir bei der einheitlichen Administration deiner Systemlandschaft helfen. Jedoch erledigen diese nicht alles. Hier ist Foreman gefordert. Foreman setzt allem eine einheitliche Oberfläche auf, da man hiermit seine komplette Infrastruktur aktualisieren und bereitstellen kann und diese im Überblick behält. Foreman besteht aus einem Serverprozess, der die anderen Komponenten kontrolliert, aus so genannten Smart-Proxys, die mit anderen Diensten (z. B. Puppet, DHCP, DNS, TFTP) kommunizieren, sowie einem Web-U.

Ist das verwaltete System installiert und über die Parameter des Template auch der Puppet-Client installiert, implementiert Foreman die hinterlegten Puppet-Klassen. Als weiterer lästiger Arbeitsschritt in der Praxis erweist sich meist auch die Suche nach der Antwort auf die Frage: Welche ist die nächste freie IP-Adresse? Diese kann Foreman beim Anlegen eines neuen Host frei vergeben oder auch einfach die nächste freie IP aus dem Pool des Netzes nehmen – Einträge im DNS vorwärts und rückwärts inklusive.

Außerdem integriert sich Foreman mit diversen Cloud- und Virtualisierungsplattformen wie etwa Open Stack, O-Virt, VMware, Rackspace und Amazons AWS, sodass Funktionen auch in einer virtualisierten Umgebung funktionieren.

Erstelle und verwalte Instanzen in privaten und öffentlichen Clouds. Gruppiere deine Hosts und verwalte diese unabhängig vom Standort in großen Mengen. Foreman stellt außerdem ein RESTful API, CLI, Web-Frontend zur Verfügung, mit dem du Geschäftslogik auf höherer Ebene erstellen und mit der Software interagieren kannst.

Hostname und der FQDN sind bei einer Foreman Installation wichtig

Um Foreman zu installieren, konfiguriere zunächst den Hostname auf deinem System mit Hilfe der beiden unten gezeigten Kommandos. “foreman” dient dabei als Platzhalter für den Hostname und diesen kannst du nach deinem Bedarf ersetzen.

hostnamectl set-hostname 'foreman' 
exec bash 

Der Hostname sollte daraufhin in der hostname-Datei implementiert worden sein, die sich im Verzeichnis befindet. Ob der Name in der betreffenden Datei eingetragen worden ist, kannst du mit dem unten eingeblendeten Kommando prüfen. Das Output sollte mit dem gesetzen Hostname entsprechend übereinstimmen.

cat /etc/hostname 

Zusätzlich dazu kannst du im Terminal auch das Kommando aus dem folgenden Code-Snippet nutzen. Das Output sollte daraufhin der von dir vergebene Hostname sein.

hostname 

Setze hiernach den Fully Qualified Domain Name (FQDN). Der FQDN setzt sich aus dem Hostname und dem Domain Name zusammen. Genauere Informationen hierzu kannst du bei Interesse gerne in unserem Artikel zum Thema Hostname/Domain/FQDN – Warum Namen wichtig sind und wie du sie änderst! nachlesen. Wie der Hostname lautet, weißt du ja bereits, denn diesen habe ich gerade zuvor festgelegt. Aber wie lautet der Domain Name. Dies findest du mit Hilfe des unten eingeblendeten Befehls heraus.

cat /etc/resolv.conf 

Darauf wird ein Output generiert, wie im folgenden Screenshot veranschaulicht. Ich habe darin markiert, wo du die Information zum Domain Name findest.

In meinem Fall lautet der Domain Name gridserver.io. Um den FQDN nun schließlich zu setzen, musst du die Datei /etc/hosts mit einem beliebigen Texteditor bearbeiten. Ich tue dies – wie im folgenden Kommando gezeigt – mit dem nano-Editor.

nano /etc/hosts 

Eigene IP einsetzen

Füge die Information über den FQDN zu deinem Server hinzu, wie du sie im Code-Snippet unten siehst, entsprechend angepasst mit deinen eigenen Daten. Den Platzhalter IP ersetzt du mit der Public-IP deines Servers.

IP foreman.gridserver.io foreman 

Wenn du deinen Ubuntu-Server über unseren Panel beziehst, dann wäre die Public IP jene, die du im Screenshot an der Stelle erkennst, die pink eingerahmt ist.

Speichere nach deinem Update die Datei /etc/hosts im nano-Editor mit der Tastenkombination Strg+O und verlasse den Editor mit Strg+X.

Daraufhin prüfst du, ob deine Definitionen von Hostname und dem FQDN auf deinem Server greifen, zunächst mit den unten präsentierten Befehlen.

hostname
hostname -a
hostname -a 

Der Output auf jedes der beiden oben gezeigten Kommandos würde in Bezug auf mein Beispiel lauten: foreman Du kannst dir ebenso den FQDN mit folgendem Befehl anzeigen lassen.

hostname –f 

Hierauf würde der Output in Bezug auf mein Beispiel lauten: foreman.gridserver.io Separat kannst du dir mit folgendem Kommando auch einfach nur den gesetzen Domainname wiedergeben lassen.

hostname –d 

Auf das Beispiel bezogen wäre der Output in dem Fall: gridserver.io Du kannst dir auch den kompletten Inhalt der hosts-Datei wiedergeben lassen, indem du folgendes Kommando nutzt.

cat /etc/hosts 

Bist du bereit zu starten?

Oder hast du noch Fragen? Erstelle dir jetzt dein kostenloses Konto oder lass dich in einem persönlichen Gespräch beraten.

Foreman installieren und weitere Komponenten

Los gehts mit der Foreman Installation. Vorab führst du am besten ein Update deines Servers durch.

apt-get update && apt-get upgrade 

Zunächst solltest du deinem Server eine Reihe von CA-Zertifikaten hinzufügen, wozu dir dieses Kommando hier nutzt.

apt-get install ca-certificates 

Dann aktivierst du mit den folgenden Kommandos Puppet 5-Repositories.

Im Fall von Ubuntu 16.04:

wget https://apt.puppetlabs.com/puppet5-release-xenial.deb 
dpkg -i puppet5-release-xenial.deb 

Für Ubuntu 18.04:

wget https://apt.puppetlabs.com/puppet5-release-bionic.deb 
dpkg -i puppet5-release-bionic.deb 

Mit den unten gezeigten Befehlen aktivierst du Foreman 1.19-Repositories. Im Fall von Ubuntu 16.04:

echo "deb http://deb.theforeman.org/ xenial 1.19" | sudo tee /etc/apt/sources.list.d/foreman.list 

Bei Ubuntu 18.04:

echo "deb http://deb.theforeman.org/ bionic 1.19" | sudo tee /etc/apt/sources.list.d/foreman.list 

Im Fall beider Ubuntu-Versionen müssten dann noch diese beiden Kommandos ausgeführt werden.

echo "deb http://deb.theforeman.org/ plugins 1.19" | sudo tee -a /etc/apt/sources.list.d/foreman.list 
wget -q https://deb.theforeman.org/pubkey.gpg -O- | sudo apt-key add - 

Je nach Version kannst du die Versionsnummer von Puppet und/oder in den oben präsentierten Kommandos anpassen. Achte jedoch auf die Kompatibilität zwischen der Puppet- und Foreman-Version. Hierzu solltest du dich im Fall einer Anpassung der Versionsnummer(n) im Internet informieren. Mit Hilfe des unten eingeblendeten Befehls installierst du den Foreman-Installer. Mit dem Foreman-Installer kannst du mit der Foreman Installation beginnen.

apt-get update && apt-get -y install foreman-installer 

Im Anschluss daran startest du die Foreman Installation mit Hilfe des Foreman-Installers. Hierbei werden folgende Komponenten mit installiert, nämlich Foreman Web UI (Apache HTTP mit SSL), Puppet Master, Puppet agent, Smart Proxy und TFTP Server. testpassword kannst du mit einem Passwort deiner Wahl ersetzen.

foreman-installer --foreman-admin-username admin --foreman-admin-password "testpassword" 

Daraufhin solltest du ein Output erhalten, das dem im Screenshot unten ähnlich ist.

Konfiguriere deine Firewall

Nach der Foreman Installation inklusive Komponenten, ist es notwendig, dass du für deine Firewall eine Reihe von Ports zugänglich machst. Führe hierfür die unten gezeigten Kommandos aus.

ufw allow 53,80,443,3000,3306,5432,8140,8443/tcp 
ufw allow 67:69/udp 

ufw allow 5910:5930/tcp

Konfiguriere Foreman und Komponenten

Eine funktionsfähige Foreman Installation benötigt eine eigene Datenbank – die Datenbankfreigabe wird sonst nicht unterstützt. Standardmäßig verwendet das Installationsprogramm PostgreSQL, während eine Paket- oder Quellinstallation SQLite verwendet. Wenn du eine andere Datenbank (z. B. MySQL) verwenden möchtest, müsstest du die Konfigurationsdatei unter config/database.yml ändern. Verwende in allen Fällen die Produktionseinstellungen. Mehr Informationen hierzu entnimmst du der Dokumentation zu Foreman. Um das Datenbankschema und den Inhalt zu initialisieren, führe folgende beiden Kommandos aus:

foreman-rake db:migrate 
foreman-rake db:seed 

nano /etc/foreman/settings.yaml

Im Anschluss daran ist es noch notwendig, dass du in der /etc/foreman/settings.yaml-Konfigurationsdatei einen Wert anpasst. Mit dem unten gezeigten Befehl würdest du diese im nano-Editor öffnen.

Darin musst du den Wert von :puppetrun: ändern. Wie du dem Screenshot entnimmst, ist dieser per default auf false gesetzt. Du musst ihn auf true ändern, dann mit der Tastenkombination Strg+O speichern und mit Strg+X den nano-Editor verlassen. Die Werte der übrigen Parameter musst du nicht verändern. Aber falls du Interesse an Informationen zu deren Bedeutung haben wollen solltest, dann wirst du ebenfalls in der Dokumentation zu Foreman fündig.

Schließlich fügst du dann noch den Foreman-Host zur Datenbank von Foreman hinzu.

/opt/puppetlabs/bin/puppet agent --test 

Daraufhin sollte dir ein ähnliches Output generiert werden, wie du im folgenden Screenshot erkennst.

Danach startest und prüfst du jeweils den Service von Foreman und Puppet, indem du die vier unten aufgelisteten Kommandos durchführst. Jeden abgefragten Status-Modus kannst du mit der Tastenkombination Strg+Z wieder verlassen.

systemctl start foreman 
systemctl status foreman

systemctl start puppet.service

systemctl status puppet.service

Getting started mit dem Web UI von foreman

Öffne deinen Webbrowser und besuche http://localhost, indem du localhost mit der IP deines Servers austauscht, um auf die Foreman-Weboberfläche zuzugreifen. Alternativ kannst du auch http://FQDN nutzen, wobei du dann den Platzhalter FQDN mit dem dir bekannten FQDN austauscht. In diesem Fall müsstest du zusätzlich aber noch einen DNS-Eintrag erstellen. Sobald du die Foreman-Weboberfläche im Browser erreichst, siehst du zunächst die Login-Seite. Gib deinen Foreman-Benutzernamen (admin) und das zuvor erstellte Passwort (in meinem Fall: testpassword) ein und klicke dann auf die Schaltfläche Login.

Daraufhin erscheint die Hauptseite, auf der du einen Statusüberblick hast, wie z.B. einen gesamten Host Konfigurationsstatus und einen Host Konfigurationsstatus für Puppet.

Im links befindlichen Menü findest du im Untermenü des Hosts-Menüpunktes den Alle Hosts-Menüpunkt.

Auf der Hosts-Seite hast du einen Überblick und die Möglichkeit auf Zugriff existierender Hosts. Auch kannst du neue Hosts via dem Host erstellen-Button hinzufügen oder diese über den Export-Button exportieren.

Der Klick auf den Host Name leitet dich weiter auf die Detailseite dieses Hosts, auf der du eine Übersicht zu den Eigenschaften sowie Diagramme zur Laufzeit und den Ressourcen findest.

Fazit

Wow – die Foreman Installation ist abgeschlossen! Das ging doch recht unkompliziert und hat auch nich lange gedauert. Du bist jetzt im Besitz eines Lifecycle-Management-Tools, mit dem du deine gesamte Server-Infrastruktur im Auge hast und automatisiert sämtliche Abläufe regeln und deinen Server proaktiv verwalten kannst. Vielleicht habe ich dich – falls du uns oder unsere Services noch nicht kanntest – aufmerksam und neugierig gemacht. In jedem Fall hat es mir Freude gemacht, dir zu zeigen, wie du deinen Ubuntu-Server für Foreman startklar machst und dir auch ein wenig beim Einstieg in Foremans Web UI zu helfen. 🙂