Workshop: Systemverwaltung mit Foreman

Kompetenter Vorarbeiter

Große Systemlandschaften zu verwalten – das ist das Ziel von Foreman. Die Open Source-Software kümmert sich dabei um jeden Aspekt, angefangen bei der Installationdes Systems über dessen Konfiguration und Orchestrierung bis zu dessen Dekomissionierung. Dieser Artikel gibt einen Einstieg in Funktionsweise und Bedienung des Frameworks.
In der Juni-Ausgabe des IT-Administrator dreht sich alles um den Schwerpunkt 'Monitoring & Dokumentation'. So zeigen wir Ihnen, wie die Netzwerküberwachung in ... (mehr)

In modernen Rechenzentren möchte heute niemand mehr Systeme manuell installieren. Das liegt nicht nur daran, dass es sich hierbei um eine stupide Aufgabe handelt, die immer wiederkehrt, sondern auch daran, dass die Anforderungen an eine Installation mittlerweile sehr komplex geworden sind. Bei der Maschine kann es sich um ein physisches oder ein virtuelles System handeln, das entweder im eigenen Rechenzentrum oder bei einem Cloud Provider zu finden ist.

Mit der Installation allein ist es in den meisten Fällen nicht getan, muss die Maschine doch mit den passenden Software-Paketen und Konfigurationsdateien betankt werden. Auch sind DNS- und/oder DHCP-Einträge für das System zu erzeugen. Nicht zuletzt soll das System auch in das unternehmensweite Monitoring mit aufgenommen werden. Es steht also eine Vielzahl von Aufgaben an, bevor ein neues System schließlich einsatzbereit ist.

Gewappnet für alle Umgebungen

Das in Ruby on Rails geschriebene Systemmanagement-Tool Foreman [1] verspricht all diese Aufgaben zu lösen. Neben einer schicken Webapplikation und einer API zur Automatisierung bietet es eine enge Verknüpfung mit dem Konfigurations-Management-System Puppet und neuerdings auch Chef an. An Betriebssystemen unterstützt das Werkzeug praktisch jede gängige Linux-Distribution sowie Solaris. Für Cloud-Installationen können momentan die folgenden Provider zum Einsatz kommen:

- Amazon EC2

- Google Compute Engine

- Libvirt

- OpenStack

- oVirt und RHEV

- Rackspace

- VMware

Externe Dienste, die das Tool zur Orchestrierung benötigt, also etwa DNS-, TFTP- oder DHCP-Server oder Konfigurations-Management-Systeme wie Puppet oder Chef, werden über sogenannte Smart-Proxies angesprochen. Diese Proxy-Systeme befinden sich idealerweise in der Nähe der Services, auf die Foreman zugreifen möchte. In großen Umgebungen lassen sich Latenzen so minimieren. Mittels Plug-Ins ist es möglich, den Funktionsumfang des Frameworks zu erweitern. So existiert beispielsweise ein Plug-In namens "foreman_audited_notifications", das sämtliche Änderungen an Foreman an einen IRC-Bot überträgt.

Die komplette Foreman-Landschaft lässt sich in unterschiedliche Umgebungen einteilen. Somit existiert eine saubere Trennung zwischen Produktions-, Test- und Entwicklungssystemen. Ressourcen, die das Tool zur Installation und Konfiguration von neuen Systemen benötigt, lassen sich dabei den einzelnen Umgebungen zuweisen. Also beispielsweise Kickstart- oder Jumpstart-Profile und Puppet-Klassen.

Installation per Antwortdatei

Die in diesem Workshop verwendeten Beispiele basieren auf einer Fedora 19-Installation. Daneben unterstützt das Framework auch Red Hat Enterprise Linux, Debian und Ubuntu als Plattformen. Unter Fedora lässt sich das Foreman-Repository über eine yum-Konfigurationsdatei einbinden und im Anschluss an den Start des Installers kann das Setup des Frameworks beginnen:

yum -y install http://yum.theforeman.org/releases/1.4/f19/x86_64/foreman-release.rpm
yum -y install foreman-installer foreman-installer

Zur Installation kommen eine Reihe von Puppet-Modulen zum Einsatz, die die Software auf der jeweiligen Plattform installiert. Rufen Sie den Installer ohne weitere Optionen auf, so befinden sich im Anschluss an die Installationen die folgenden Komponenten auf dem System:

- Apache-Webserver

- PostgreSQL-Datenbank

- Foreman unter dem mod_passenger-Apache-Modul

- Smart-Proxy für Puppet und TFTP

- Puppet-Master unter dem mod_passenger-Modul

- Puppet-Agent

- TFTP-Server als xinetd-Dienst

Foreman greift zur Installation auf eine Antwort-Datei zurück. Diese definiert, welche Puppet-Klassen und Parameter zur Installation herangezogen werden. Die yaml-Datei »foreman-installer-answers.yaml« befindet sich unterhalb des Konfigurationsverzeichnisses "/etc/foreman/".

Der Installer bietet eine Reihe von Optionen an, mit denen Sie die Installation anpassen. Möchten Sie beispielsweise zu einem späteren Zeitpunkt einen Smart-Proxy für einen DHCP-Server aufbauen, sollte der Aufruf hierfür so aussehen wie im Listing "DHCP Smart-Proxies-Setup" dargestellt. Möchten Sie die Optionen nicht alle auf der Kommandozeile mit übergeben, können Sie einfach die gerade erwähnte Antwortdatei anpassen, sodass lediglich die gewünschten Komponenten installiert werden.

Hat soweit alles funktioniert, so ist nach der Installation ein Login über das Webinterface von Foreman möglich. Die URL hierfür lautet »https://Rechnername« und als Account wartet "admin" mit dem Passwort "changeme". Ist ein Fehler bei der Installation aufgetreten, so hilft ein Blick in die Log-Dateien unterhalb von "/var/log/foreman-installer" weiter.

Nach dem Login sollten Sie zuerst einen neuen Benutzer anlegen, mit dem Sie die Umgebung verwalten, zumindest aber sollten Sie das Passwort des Nutzers "Default admin" ändern. Foreman bietet die Möglichkeit, neben lokalen Benutzern auch LDAP-Benutzer eines zentralen Directory-Services zu benutzen. Die Konfiguration hierfür nehmen Sie ebenfalls über das Webinterface vor. Mit recht fein granulierten Rollen lässt sich dann sehr genau festlegen, wer welche Rechte in der Umgebung hat.

Bild 1: Das System-Management-Tool Foreman besteht aus diversen Komponenten und greift mittels Smart-Proxies auf externe Dienste zurück
comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023