Mit dem gridscale Partner Panel zum Cloud Provider werden Das Webinar Jetzt anmelden

Installiere und konfiguriere Foreman unter Ubuntu 16.04/18.04

Im Durchschnitt wird dieses Tutorial Installiere und konfiguriere Foreman unter Ubuntu 16.04/18.04 mit 5 bewertet, wobei 1.0 die schlechteste und 5.0 die beste Bewertung ist. Es haben insgesamt 229 Besucher eine Bewertung abgegeben.
229 0

Installiere und konfiguriere Foreman unter Ubuntu 16.04/18.04

Foreman 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 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 gridscale, Getting started mit PaaS bei gridscale, Getting started mit der Cloud Automation, Getting started mit dem gridscale Load Balancer, Getting Started mit der gridscale API und gridscale 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.

Output von Kommando cat /etc/resolv.conf

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.

IP-Adresse eines Server im gridscale-Panel

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.

Output nach Installation des Foreman-Installers

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.

Anpassung der Konfigurationsdatei unter /etc/foreman/settings.yaml im nano-Editor

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.

Output nach Hinzufügen des Host zur Foreman-Datenbank

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.

Login-Seite des Foreman Web UI

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.

Übersichtsseite des Foreman Web UI

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

Alle Hosts-Menüpunkt aufrufen im Foreman Web UI

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.

Hosts-Seite im Foreman Web UI

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.

Detailseite eines Hosteintrags im Foreman Web UI

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:

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 […]

Schade, dass dir der Artikel nicht gefallen hat.
Was sollten wir deiner Meinung nach besser machen?

Vielen Dank für dein Feedback!
Wir melden uns bei dir, sobald der Artikel zu deinem Wunschthema fertig ist.

Übrigens: kennst du schon unser Tutorial zum Thema Kibana auf Ubuntu installieren?

×

Entwickler?

Dann einfach hier für unsere Tutorial-Updates anmelden.
Keine Sorge: Wir spammen dich nicht zu