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 wird und eine Möglichkeit sich wiederholende Aufgaben zu automatisieren, Anwendungen schnell bereitzustellen und Server vor Ort oder in der Cloud proaktiv zu verwalten? Dann bist du bei diesem Tutorial richtig. Denn ich zeige hier, wie man Foreman unter Ubuntu 16.04/18.04 installiert und konfiguriert, sowie erste Schritte in der Web UI von Foreman angeht.
Aber auch wenn dein Server nicht über unseren Panel läuft, kannst du weiterlesen und Nutzen aus den Informationen ziehen, die ich bereit stelle. ? Vielleicht hast du ja auch Interesse, mehr über uns, was wir machen und welche Services wir anbieten zu erfahren. Über uns, sowie was wir anbieten, verraten wir dir auf unserer Website und über unsere Services erfährst du zudem in unseren Artikeln How to Tech4Hosting, Getting started mit PaaS bei Tech4Hosting, Getting started mit dem Tech4Hosting Load Balancer, Getting Started mit der Tech4Hosting API und Tech4Hosting API Dokumentation mehr.
Zu 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- & 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.
Setze den Hostname und den FQDN
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
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
Das 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
Das Output hierauf würde 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
Das Output hierauf würde in Bezug auf mein Beispiel lauten: gridserver.io
Du kannst dir auch den kompletten Inhalt der hosts-Datei wiedergeben lassen, indem du folgendes Kommando nutzt.
cat /etc/hosts
Installiere Foreman und Komponenten
Los gehts mit der 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
Im Fall von 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
Im Fall von 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. Der Foreman-Installer ist das Installationstool für Foreman.
apt-get update && apt-get -y install foreman-installer
Im Anschluss daran installierst du Foreman 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
Nachdem du Foreman inklusive Komponenten installiert hast, 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
Foreman benötigt eine eigene Datenbank – die Datenbankfreigabe wird 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
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.
nano /etc/foreman/settings.yaml
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! 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. ?
Aus unserer Rubrik zu Foreman auch noch interessant und hilfreich:
- Foreman – Hinzufügen und Konfigurieren des NTP-Moduls unter Ubuntu 16.04/18.04
- Wir von Tech4Hosting haben ein Plugin entwickelt, mit dem es dir möglich ist von Tech4Hosting angebotene Server-Templates direkt in Foreman zu generieren und zu verwalten. Mehr dazu unter Foreman provided by Tech4Hosting: Erstelle und manage deine Server in Foreman mit dem Plugin von Tech4Hosting