Seite wählen

Orchestration mit Foreman

von | Aug 26, 2016 | Linux, Puppet, Foreman

Foreman Logo
Ich möchte heute mal wieder ein Plugin vorstellen, das Foreman um eine neue Funktionalität erweitert. Diesmal handelt es sich um das Plugin „Remote Execution“ and die Funktionalität möchte ich mal „Orchestration“ nennen.
Nachdem sich unter dem Begriff Orchestration jeder was anderes vorstellt und es mindestens zwei verschiedene Ansätze in der IT gibt, möchte ich mit einer kleine Definition und Abgrenzung anfangen. In diesem Fall verstehe ich unter Orchestration die zentrale Steuerung von Jobs, sowohl zum direkten als auch zeitgesteuerten Ausführung auf den angebundenen Systemen. Der zweite Aspekt zentrale Steuerung von Jobs auf verschiedenen Systemen mit Abhängigkeiten zu einander wird hier leider nicht bedient. Das Plugin unterstützt einen Administrator somit darin beispielsweise allen Systemen ein Update-Kommando zu schicken, um die Logik das jeweils nur ein Knoten im Cluster gleichzeitig gemacht werden soll muss er sich also weiterhin kümmern.
Aber fangen wir doch einfach von vorne mit der Installation an. Diese erfolgt am einfachsten mit dem Foreman-Installer, welcher die Puppet-Module des Projekts verwendet. Wenn man diesen Installationsweg nimmt und auch gleich den Provider „SSH“ dazu nimmt, bekommt man gleich alles fertig eingerichtet. Dies heißt es gibt dann einen SSH-Key auf dem Smart-Proxy, der per Snippet direkt auf neuen Systemen als „Authorized Key“ für „root“ deployed wird. Um bestehende Systeme muss sich noch gekümmert werden, aber dies übernimmt das Konfigurationsmanagement gerne. Wer hier nicht mit „root“ arbeiten will oder darf, kann dem Plugin auch einen anderen Anmeldebenutzer, effektiven Benutzer zur Ausführung und die Methode zum Wechseln zwischen diesen konfigurieren. Wem „SSH“ als Provider nicht gefällt, kann sich bereits den Entwicklungsstand des „Ansible„-Providers anschauen, für die Zukunft sind noch weitere Provider wie „Salt“ oder „MCollective“ geplant.
Im Webinterface von Foreman erhält man nun die Option Jobs auszuführen. Ich empfehle den Weg über die Hostliste, um mehrere Host auszuwählen und dann für alle eine „Run Job“-Action auszulösen. Für den Power-User funktioniert auch der direkte Einstieg über die Job-Maske und mit eine Suchbedingung wie alle Systeme mit einer bestimmten Betriebssystemversion oder alle Produktivsysteme.
Job Invocation
Nachdem ein Job eingeplant wurde, wird dieser im Hintergrund über das Foreman-Task-Plugin ausgeführt und man kann für jeden Job die Ausführung sehen, so dass man weiß auf wie vielen System der Job noch ausgeführt werden muss, schon erfolgreich oder mit Fehlern gelaufen ist.
Job Result
Auch der Output jedes einzelnen Systems kann nachgeschaut werden, so dass man sieht warum ein Job fehlgeschlagen ist oder auch bei erfolgreicher Ausführung natürlich was genau passiert ist.
Job Output
Die ausführbaren Kommandos basieren auf Job-Templates ähnlich den Provisioning-Templates. Neben dem generischen Kommandos sind bereits Templates zum Softwaremanagement, Powermanagement, Steuerung von Diensten und der Interaktion mit Puppet vorbereitet. Zusätzlichen können natürlich eigene Templates erstellt werden, inklusive den Eingabemasken mit Validierung.
Neben der sofortigen Ausführung lassen sich Jobs auch zeitgesteuert einplanen. Hierbei wird angegeben wann frühestens aber auch wann spätestens der Job ausgeführt wird. Außerdem können auch wiederkehrende Jobs im gleichen Stil wie Cronjobs eingeplant werden.
Alles in allem ist für mich das „Remote Execution“-Plugin eine echte Bereicherung für Foreman und der logisch nächste Schritt nach Provisioning und Konfigurationsmanagement, weshalb es auch Teil der Foreman-Schulung geworden ist. Von SSH als Provider bin ich allerdings noch nicht überzeugt und will mir mit dem Wissen aus unserer Ansible-Schulung auch mal diesen Provider im Detail anschauen.

Dirk Götz
Dirk Götz
Principal Consultant

Dirk ist Red Hat Spezialist und arbeitet bei NETWAYS im Bereich Consulting für Icinga, Puppet, Ansible, Foreman und andere Systems-Management-Lösungen. Früher war er bei einem Träger der gesetzlichen Rentenversicherung als Senior Administrator beschäftigt und auch für die Ausbildung der Azubis verantwortlich wie nun bei NETWAYS.

0 Kommentare

Trackbacks/Pingbacks

  1. Foreman-Training nun auch mit Ansible und Monitoring-Integration › NETWAYS Blog - […] zu benötigen. Ebenso nur ein winziges Detail sind die OpenSCAP-Scans, die On-Demand mittels des Remote-Execution-Plugins angestoßen werden können. Nicht…
  2. Foreman’s 8th birthday – How was the party? › NETWAYS Blog - […] several ways of provisioning, Puppet for configuration management and some plugins like OpenSCAP, Remote Execution and Expire Hosts one…

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mehr Beiträge zum Thema Linux | Puppet | Foreman

Kritischer Fehler in Puppet Version 7.29.0 und 8.5.0

Eine Warnung an alle Nutzer von Puppet, aber auch Foreman oder dem Icinga-Installer, die Version 7.29.0 und 8.5.0 von Puppet enthält einen kritischen Fehler, der die Erstellung eines Katalogs und somit die Anwendung der Konfiguration verhindert. Daher stellt bitte...

Foreman Birthday Event 2023 – Recap

Two years ago I started my recap of the event with "Last week on Thursday we had the Foreman Birthday event and I can proudly say it was a big success." and I can do the same for this one. At the beginning of the year planning for the event started in the background...

Foreman Birthday Event 2023 – Save the date

I can happily announce we will have a Birthday event on 27.07. this year again. I will be our host again, supported by my colleagues from NETWAYS, ATIX and the Foreman Project. When I talked to people at Cfgmgmtcamp, I was told by many that they really liked the...