pixel
Select Page

NETWAYS Blog

OSMC 2022 | What’s new in the Prometheus ecosystem?

About a month ago OSMC took place and I was happy to attend an offline conference again. One of the things I enjoy most at conferences is networking and this is why I know Julien Pivotto already for years. He focused his work a while ago on Prometheus and is a regular speaker at OSMC, typically not only giving a talk but also a workshop. And now he is also a maintainer of Prometheus. So who could be a better speaker to give an update talk summarizing the news from the last year?

Julien started with a short introduction to Prometheus which I want to repeat here as some readers will also likely not be familiar with the tool. Prometheus is an Open Source monitoring solution based on metrics. It provides a Service Discovery to find metric endpoints to pull data from. PromQL – the Prometheus Query Language – is then used to query and visualize data in the frontend. The project while sometimes still called a new competitor in the field of monitoring solutions has already some history and is a graduated CNCF project since 2018, so we do talk about a project that already left its footprints in the monitoring ecosystem.

Helpful when Exploring Metrics

The first topic Julien covered was the new react UI providing a query editor for PromQL including autocompletion and formatting. The metrics explorer now also supports using the local timezone instead of UTC which can be quite helpful when debugging as it removes the need to calculate this. Also very helpful is the option to filter targets and service discovery to reduce the amount of shown data. The option to show and explain CLI flags helps to tailor your installation to your needs. And as every software it now has to provide also a dark mode!

The next feature he introduced was the agent mode allowing to have an instance which only sends metrics and does not provide all the overhead like the UI if not needed. I would say the remote write receiver is a corresponding feature as it allows for federation of writes by rules as another system tailored to your needs.

The list of service discoveries increased by many new cloud and configuration management solutions, but the one to highlight is the Generic HTTP which allows for the most common and easy to implement one, a REST API with JSON body.

Relabeling capabilities are quite nice and simple ones like uppercase or lowercase are a common use case. But setting some specific labels also allows to do some scraping configuration like changing the interval.

Additions to PromQL

The additions to PromQL were a bigger part of Julien’s demo. One of the many new functions to mention is last_over_time which fills the graph with the last value coming in handy if a target does not provide metrics regularly. The option to have a negative offset is also great to mitigate errors in this case if a system was not in sync and did send with an offset of some minutes. But the most important new function is the new modifiers allowing you to get for example the top 5 at a specific time and then get the values for this specific metrics. This allows to visualize how the top 5 developed over time instead of simply showing the top 5 without how they have changed over time. By doing so you get much nicer and informative graphs.

Julien Pivotto doing his talk

Out of time metrics support allows to fill old metrics in the configured interval, so you can allow this temporarily to fill in gaps if needed by adding a timestamp to the metric.

The new LTS version allows the users to have 6+ month stable APIs while the developers can improve and release still every 6 weeks. Julien showed also how prominent they show the LTS version on the download page and documentation. This is something other projects could learn from. Talking about versioning they also synchronized the end user and go module’s minor version to show the compatibility.

Only the Required Features Set

The developers also introduced a plugin system which allows to build Prometheus with only the required feature set like only the needed service discoveries to reduce the size of the binary.

Also the Alertmanager got some new features. There is the option to mute alerts based on time for receivers allowing for example to honor on-duty and holidays. Negative matchers allow for a simpler ruleset and the new receivers provide more ways of notification.

Exporters in general got systemd socket activation and can now bind to multiple addresses. The node exporter providing information about a system got more collectors and the ones for MySQL and PostgreSQL can now handle multiple targets allowing to have only one for multiple databases reducing the amount of installations.

The Prometheus ecosystem also got a new Rust client , 30+ repositories in the prometheus-community organization, a certification program to prove your Prometheus skills and a conformance program for vendors to show compatibility of their software.

Introducing PromLens

And last but not least Julien introduced PromLens, a new separate Querybuilder with a great Explain functionality detailing how your query functioned and how many results are found. While planned as a separate tool a subset of the features should also be integrated in the normal UI to improve the user experience.

PromLens (taken from https://promlens.com/)

As Julien said, it was a great amount of topics to cover and I tried to summarize further. Please watch the recording of his talk in our OSMC Archives for more details. You will get some practical examples when he demos most of the topics mentioned above as he did a great job. If you are new to Prometheus we also have you covered with our NETWAYS training course “Prometheus Fundamentals”. Check it out!

We hope to see you around at OSMC 2023! Stay in touch and subscribe to our Newsletter!

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.

Leap(p) to Red Hat Enterprise Linux 9

Ich muss mich direkt für das Wortspiel im Titel entschuldigen, aber es lag so nahe als ich mich für das Thema entschieden hatte, denn ich möchte einen neuen Blick auf Leapp werfen mit dem Upgrades von Red Hat Enterprise Linux (RHEL) durchgeführt werden können. Der Blick soll wie gewohnt etwas ausführlicher sein, daher wird Blog-Post als erstes die Frage “Replace or In-Place” aufgreifen, die ähnlich alt ist wie “Henne oder Ei”. Als nächstes geht es um den Status des Projekts, bevor ich die Nutzung auf Kommando-Zeile erläutere. Dann ein kleiner Abstecher über Foreman-Upgrades bevor es mit dem Cockpit-Plugin graphisch wird und am Ende das Foreman-Plugin und die Ansible-Rolle das ganze Thema massentauglich machen.

Replace or In-Place?

Vermutlich stand bereits jeder Nutzer mal vor der Frage ob sich ein Upgrade lohnt oder nicht doch besser das System direkt mit der neusten Version des Betriebssystems neu zu installieren ist. Bei ersterem ist der Aufwand natürlich entsprechend geringer, denn man liest sich die Neuerungen durch, achtet dabei auf besondere Hinweise, macht nochmal ein aktuelles Backup (das tun doch hoffentlich alle?), startet das Upgrade, neustartet, lässt die Nacharbeiten laufen, neustartet und erfreut sich eines schönen glänzenden neuen Systems. Zumindest bis man merkt, dass manche Schraube immer noch locker, der Müll auf der Rückbank nicht verschwunden ist, der Motor weiter leckt und falsch eingestellt ist, um einen Autovergleich zu bemühen. Oder in unserem Fall bleibt vielleicht die oder andere Einstellung beibehalten, die sich negativ auswirkt, eine Software-Lösung wird vielleicht nicht durch eine modernere Lösung ersetzt und alles was wir mal ausprobiert haben und danach nie wieder genutzt haben nimmt weiterhin Plattenplatz weg.
Das ist dann auch meist das Argument für die Befürworter von Neuinstallationen statt Upgrades. Ein weiteres war zumindest früher oft das Thema es gibt kein einfaches, geeignetes Werkzeug und der Vorgang ist nicht supportet. So musste man früher für Updates von RHEL immer über die Installationsabbilder gehen, damit auch Änderungen an Einstellungen sowie Software möglich waren, wodurch der Aufwand quasi bis auf das Wiederherstellen von Daten der einer Neuinstallation gleicht. Der alternative Weg über den Packagemanager war oft mit manuellen Nacharbeiten verbunden und absolut nicht durch den Support abgedeckt. Hier setzt Leapp an um einen Mittelweg aus Einfachheit für den Benutzer und der Möglichkeit für Anpassungen durch die Distribution zu finden.

Das Projekt

Das Projekt Leapp hat Red Hat 2017 gestartet und es besteht aus einem Framework und den sogenannten Actors, die die eigentliche Arbeit ausführen. Das erste Mal zum Einsatz kam es dann als Upgrade von RHEL 7 auf 8. Weitere Bekanntheit bekam das Projekt unter dem Namen ELevate, was ein Fork der Actor durch die Distributoren von AlmaLinux ist. Der Fork enthält dann Actors um CentOS Linux 7 auf AlmaLinux OS 8, CentOS Stream 8, EuroLinux 8, Oracle Linux 8 oder Rocky Linux 8 zu aktualisieren. Auch wenn die Intention sicher ein einfacher Wechsel von CentOS zu AlmaLinux war, ist der Open-Source-Gedanke hier mit der zusätzlichen Unterstützung der anderen Distributionen sehr löblich umgesetzt, insbesondere nachdem CentOS selbst die Unterstützung von Leapp ausgeschlossen hatte. Für ein Upgrade von RHEL 8 auf 9 gibt es mittlerweile vom Leapp-Projekt selbst auch Actors, was der Grund für mich war mich erneut mit dem Projekt zu beschäftigen, da bei einem Kunden genau dieses Update ansteht.
read more…

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.

Modifier im Icinga-Director selbstgemacht

Ich bin sowohl als Consultant als auch als Ausbilder ein großer Fan von Hilfe zur Selbsthilfe. Der Blogpost wird also zum einen dem geneigten Leser hoffentlich helfen sich bei Bedarf seine eigenen Modifier für den Icinga-Director zu bauen, zum anderen will ich anhand des Beispiels auch beleuchten was ich so unter Hilfe zu Selbsthilfe verstehe. Daher will ich etwas weiter ausholen bevor der erste Code-Schnipsel kommt, wer also schon weiß was Modifier sind, wie man sie nutzt und warum man vielleicht Bedarf nach einem eigenen hat, darf gerne die Einleitung überspringen.

Modifier im Director ermöglichen es Daten aus der Import-Quelle anzupassen oder auch anzureichern, sprich es erlaubt der Monitoring-Administration auszubügeln was in der Datenquelle nicht passt oder auch einfach nicht für das geplante Regelwerk in Icinga 2 geeignet ist. Einfache Stringoperationen ermöglichen es bereits aus Hostnamen einen FQDN zu machen oder diesen aus möglicherweise getrenntem Hostnamen und Domäne zu kombinieren, komplexere Modifier machen beispielsweise einen DNS-Lookup um Icinga 2 zur Laufzeit vom DNS unabhängig zu machen. Bereits an den Beispielen sieht man hoffentlich, wie hilfreich diese Optionen sein können, und wenn damit dann Icinga 2 voll automatisiert mit Tausenden von Hosts befüllt wird, wird hoffentlich klar wie kritisch die Funktion ist. Nun gibt es natürlich trotzdem Bugs, einen hat Tom mit dem Release 1.9.1 gefixt und zwar dass bei Stringoperationen aus NULL-Werten ein leerer String wurde. Nachdem dieses Verhalten nun bereits länger so war, hat vielleicht der ein oder andere sich darauf verlassen, so dass es nun statt eines lang ersehnten Bug-Fix wie für mich, für diese Nutzer wie ein Bug erscheinen mag. Der Supportkunde der nun bei Patrick aufgeschlagen war, da dieser gerade wieder im Rahmen der Ausbildung das Operations-Team verstärkt, hatte zum Glück Verständnis für den Bug-Fix, aber trotzdem war nun sein Workflow kaputt. Als ein Beispiel wurde genannt, dass sie aktuell einen DNS-Lookup als Modifier nutzen, der gegebenenfalls wenn ein Name nicht auflösbar ist einen NULL-Wert zurückgibt, im nächsten Schritt wurde daraus ein leerer String und dann wurde der leere String durch einen regulären Ausdruck zum String “Unknown”. Von Patrick um eine kurze Einschätzung gebeten, sagte ich ihm er soll mal schauen ob der Modifier statt einem NULL-Wert direkt einen leeren String zurückgeben kann oder ein anderer Modifier genutzt werden kann um NULL-Werte zu befüllen. Nachdem diese Suche erfolglos geblieben war, hat er das Ticket in Richtung Icinga eskaliert, da das Kundenproblem nicht ohne Software-Änderung zu lösen war.

Nun hätten wir es darauf beruhen lassen können, da ich aber bei meinen Auszubildenden den Drang fördere, eine Lösung zu suchen statt das Problem nur jemand anders zuzuschieben und Patrick auch von Natur aus nicht zufrieden ist wenn er ungelöste Probleme vor sich hat, kam er erneut auf mich zu. Mit meiner Antwort, dass so ein Modifier in etwa 10 Minuten geschrieben sei, und dass er dies doch übernehmen könne, war er natürlich nicht ganz zufrieden bis ich ihm dafür meine Unterstützung angeboten habe. Da ich hier schon entsprechendes beigetragen habe, konnte ich ihm direkt sagen was zu tun ist und es kam dabei der Commit 4692b28 für den Director heraus. Dieser fügt einen Modifier hinzu der es erlaubt NULL-Werte direkt durch einen angegebenen String zu ersetzen, heißt der Kunde kann wieder seinen Workflow bauen und dieser dürfte sogar einfacher sein.

Modifier: Replace null value with String

Wenn man sich den Commit nun anschaut sind es nur zwei veränderte Dateien, zum einen der neu erstellte Modifier und zum anderen ist eine Registrierung notwendig. Der Modifier selbst besteht quasi aus einem Rumpf aus Namespace, verwendeten Klassen und seiner eigenen Klasse als Implementierung der Basisklasse sowie drei Funktionen in der Datei library/Director/PropertyModifier/PropertyModifierReplaceNull.php. Die Funktion getName() erlaubt es eine Beschreibung für das Auswahlfeld der Modifier zurückzugeben, addSettingsFormFields(QuickForm $form) erlaubt es zusätzliche, für den Modifier benötigte Eingabefelder zu definieren und transform($value) ist dann die eigentliche Modifikation, also bei einem NULL-Wert den eingegebenen String zurückzugeben ansonsten den ursprünglichen Wert. Entstanden ist das Ganze durch Kopieren und Anpassen eines ähnlichen Modifiers in 5 Minuten Arbeitszeit und 30 Minuten Erklärung.

<?php

namespace Icinga\Module\Director\PropertyModifier;

use Icinga\Module\Director\Hook\PropertyModifierHook;
use Icinga\Module\Director\Web\Form\QuickForm;

class PropertyModifierReplaceNull extends PropertyModifierHook
{

    public function getName()
    {
        return 'Replace null value with String';
    }

    public static function addSettingsFormFields(QuickForm $form)
    {
        $form->addElement('text', 'string', array(
            'label'       => 'Replacement String',
            'description' => $form->translate('Your replacement string'),
            'required'    => true,
        ));
    }

    public function transform($value)
    {
        if ($value === null) {
            return $this->getSetting('string');
        } else {
	    return $value;
	}  
    }
}

Zusätzlich muss der Modifier noch in register-hooks.php registriert werden, dazu benötigt es zwei Einträge. Zum einen muss der Modifier an sich bekannt gemacht werden und zum anderen dann noch als Umsetzung des Hook angeboten werden was der Director über eine Iteration durch ein mehrdimensionales Array löst, so dass der Modifier nur an entsprechender Stelle dem Array hinzugefügt werden muss. Dabei der Ordnung halber an die alphabetische Reihe gehalten und schon ist es auch hübsch. Dafür nehmen wir mal 1 Minute Arbeitszeit und 5 Minuten erklären an.

...
use Icinga\Module\Director\PropertyModifier\PropertyModifierReplaceNull;
...
        PropertyModifierReplaceNull::class,
...

Noch mal den Git-Workflow erklärt, den Commit in Patrick’s Fork gepusht, auf seinem Testsystem ausgecheckt, getestet und für gut befunden, Pull-Request erstellt, macht weitere 5 Minuten Arbeitszeit und 5 Minuten Erklärung, wobei ich mir diese hier spare und stattdessen auf einen älteren Blogpost verweise, den zusammen mit Kollegen geschrieben hatte. In Summe macht das in etwa eine Stunde aufgewandte Zeit, aber ich habe nun einen Auszubildenden, der beim nächsten Mal ein ähnliches Problem besser verstehen wird, es direkt lösen kann und als Bonus neben dem Erfolgserlebnis auch als Contributor beim Director auftaucht. Patrick hat sein Wissen erweitert, den Icinga-Kollegen Arbeit abgenommen und dem Kunden ohne lange Wartezeit eine Lösung geliefert, von der auch andere zukünftig profitieren werden. Beim nächsten Mal sind es dann vermutlich wirklich 10 Minuten Arbeit für Patrick! 😉

Was aber nun wenn man einen so speziellen Modifier benötigt, dass es keinen Sinn macht diesen dem Director und damit der Allgemeinheit zur Verfügung zu stellen? Durch den modularen Aufbau von Icinga Web 2 lassen sich Modifier als Hook auch aus einem eigenen Modul anbieten. Heißt wenn der Modifier speziell für eine bestimmte Import-Quelle benötigt wird, kann der Modifier im gleichen Modul eingebaut werden. Ist er dagegen nur für die eigene Umgebung relevant kann man ihn in ein separates Modul packen oder vielleicht mit in das Modul für das Theme des Unternehmens. Dafür müssten nur ein paar Kleinigkeiten angepasst werden. Der Modifier wäre dann im Modul an der Stelle library/MODULENAME/ProvidedHook/Director/PropertyModifier/ abzulegen, dementsprechend wäre der Namespace Icinga\Module\MODULENAME\ProvidedHook\Director\PropertyModifier und statt einer register-hooks.php erstellt man eine run.php mit folgendem Inhalt:

<?php

use Icinga\Module\MODULENAME\ProvidedHook\Director\PropertyModifier\PropertyModifierMODIFIERNAME;

$this->provideHook('director/PropertyModifier', PropertyModifierMODIFIERNAME::class);

Ich hoffe das Beispiel und die Erklärungen helfen demjenigen, der einen eigenen Modifier braucht, und ich konnte auch zeigen warum ich so ein großer Fan von Hilfe zur Selbsthilfe bin. Wer noch gar nichts mit den Import-Möglichkeiten des Directors anfangen kann, ist in der überarbeiteten Schulung Icinga 2 Advanced willkommen. Das Kapitel zu Import kommt aus meiner Feder und erklärt ausführlich und anhand von Übungen wie man Daten mittels SQL aus einer Datenbank importiert und mit dem Inhalt einer CSV-Datei ergänzt um Hosts anzulegen und aus einem LDAP-Verzeichnisdienst Benutzer und Gruppen zieht. Wer dagegen jemanden kennt, der ein bisschen Hilfe zur Selbsthilfe bekommen will, wir haben noch Ausbildungsplätze bei uns im Professional Services frei! Ich verspreche aber auch allen anderen Kollegen zu helfen, wenn sich jemand für eine der anderen Stellen interessiert! 😉

Das Beitragsbild kombiniert den Director von rones auf Openclipart mit dem Icinga-Logo.

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.

Foreman 3.0 – Was bedeutet der neue Major-Release

Wer erinnert sich noch an die letzte Versionsnummer bei Foreman mit einer 1 am Anfang? Es war eine 1.24, also 25 Minor-Releases und ein ganzer Haufen Bugfix-Releases, bis zur 2.0! Und nun nach nur 6 Releases mit einer 2.x, kommt schon die 3.0? Hat die Entwicklung hier so viel Fahrt aufgenommen? Um gleich alle Bedenken vorweg zu nehmen: Nein, Foreman nutzt die Major-Versionen um eine größere Änderung an der Infrastruktur hinzuweisen. Mit 2.0 war es die Fokussierung auf PostgreSQL als einzige Datenbank und mit 3.0 ist es das Herauslösen von Puppet in ein separates Plugin.

Puppet als separates Plugin

Das Puppet bei Foreman eine Sonderstellung gegenüber den anderen Konfigurationsmanagementlösungen hat bzw. ab jetzt hatte, ist historisch leicht zu begründen, da Foreman als Managementoberfäche für Puppet entstanden ist. Schon lange sollten die anderen Lösungen aber möglichst gleiche Funktionalität bieten und als gleichwertig betrachtet werden können. Nachdem sowohl in der Community öfters die Frage aufkam, ob man Foreman auch ganz ohne Puppet nutzen kann, als auch sich für Red Hat die Strategie zu Ansible als einzige Konfigurationsmanagementlösung geändert hat, war es nur eine Frage der Zeit, dass Puppet mit den anderen Lösungen gleichgestellt und als ein Plugin heraus gelöst wurde. Das Red Hat hierfür verständlicherweise die Entwicklungszeit zurückfahren möchte, wurde auch bereits von Anfang an klar kommuniziert und somit hat Ondrej Ezr um Unterstützung aus der Community für die weitere Pflege gebeten. Hier geht der Dank ganz klar an die ATIX AG und dmTech, die sich hierzu bereit erklärt haben, sowie iRonin, die sie dabei unterstützen.

Bereits in den letzten Versionen war das Plugin verfügbar und konnte getestet werden. Mit 3.0 wird es immer noch standardmäßig installiert, kann aber falls Puppet nicht gewünscht ist einfach deinstalliert werden. Erst mit 3.1 ist es angedacht es nicht mehr direkt mit zu installieren.

Bis jetzt sind mir hier noch keine Probleme aufgefallen, aber wenn man bedenkt, dass hier dmTech mit wesentlich größerer Umgebung in Produktion testen kann, hätte mich das auch gewundert. Daher mein Aufruf an Foreman-Nutzer ohne Puppet-Umgebung, direkt mal das Plugin zu deinstallieren und zu testen, bzw. an die mit Puppet-Umgebung zu prüfen, ob nicht doch ein Fehler in ihrer Umgebung auftritt.

Neue Hostansicht als Preview

Natürlich bleibt die Entwicklung hier nicht stehen, der nächste große Schritt wird die Modernisierung der Hostansicht sein. Diese ist zwar immer noch funktional aber unbestreitbar in die Jahre gekommen. Wer möchte kann also die Chance nutzen, die neue Ansicht aktivieren und Feedback geben. Zwar sind bereits die ersten Detailverbesserungen für die 3.0.1 angekündigt, aber nur mit Feedback von Leuten die Foreman auch täglich nutzen, kann in meinen Augen auch das bestmögliche Ergebnis erzielt werden.

Wer also die neue Hostpage sehen möchte, muss unter “Administer -> Settings -> Generic” die Option “Show Experimental Labs” aktivieren. Nun taucht im Action-Menü der Hostübersicht eine neue Option “New Detail Page” auf.

Neue Host-Action 'New Detail Page'

Diese sieht aktuell folgendermaßen aus:

Neue Hostansicht

Teil der neuen Hostansicht ist bereits jetzt eine neue Statusübersicht, weitere Tabs für die verschiedenen Plugins werden in den nächsten Minor-Releases folgen.

Neue Statusübersicht

Über Lob, Kritik oder Anregungen freut sich der Feedback-Thread im Community-Forum.

Zukunftssicherheit

Die meisten anderen Änderungen möchte ich unter Zukunftssicherheit zusammenfassen. Zum einen setzt Foreman ab 3.0 auf mod_auth_gssapi für die Kerberos-Authentifizierung, damit steht dieser auch auf EL8 nichts mehr im Weg. Zum anderen wurde der Code zum Parsen der Systemdaten aus allen Quellen in Foreman selbst verschoben, was das angedachte Refactoring erleichtern sollte.

Dazu kommen noch kleine Änderungen an Permissions, Parametern und Defaults, die sich in der Upgrade-Warnings finden. Und zu guter Letzt wurde der Support für Ubuntu 18.04 und EL7 als Plattform abgekündigt, wobei für ersteres konkret mit 3.0 der Support ausläuft, bei EL7 gilt aktuell nur EL8 ab dieser Version als bevorzugte Plattform.

Zusätzlich listen die Release Notes noch eine große Menge an Detailverbesserungen und Bugfixes auf.

Ich wünsche allen ein erfolgreiches Update, Katello-Nutzer warten darum bitte noch auf den finalen Release der Version 4.2! Und wer sich fragt wovon ich hier überhaupt rede, kann sich ja mal unsere Produktseite anschauen, die wir vor kurzem aktualisiert und erweitert haben.

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.

Recap of the Foreman Birthday event 2021 – It was a great experience

Last week on Thursday we had the Foreman Birthday event and I can proudly say it was a big success. So lets talk about two things in the blogpost, first about the event itself and second about the organization of the event.

A Foreman Birthday event traditionally consists of multiple talks including a Q&A and the social part which is a great coming together by beer and pizza and usually there is also some cake involved! For organizing the event we teamed up with ATIX, so we share responsibility hosting the event every other year and support each other while doing so. With them doing a great job moving the event online last year because of the pandemic, it was clear to me the event had to happen this year, too. The idea of an hybrid event was also dismissed quickly so also all social activities had to be online only.

So to get the talks together I did the typical mix of asking former speakers, making a public announcement, asking others I hoped they would perhaps give a great talk, asked Melanie and Bernhard to ask internally at Red Hat and ATIX, thinking about doing a talk myself, considering a kettle prod to motivate colleagues and this resulted in a great diversity of ideas. So choosing the actual talks had nothing to with finding the best one, but with picking a good mixture of relevant topics for Foreman and Katello users, addressing users and developers, having something likely new to many and updates on topics that matter most.

Now our NETWAYS Events team had some experience with online events with stackconf, a three day conference on open source infrastructure, being the biggest one. So when asked for recommendations one was to have the talks pre-recorded which I happily followed, but for more community interaction I still wanted to do live Q&A in addition to the included web chat. Thanks to my colleague Christian I had some nice guide to give to those speakers who never did a recording before. And all speakers delivered, one early, one in time, three after a reminder last minute and one with a delay, but having all except one allowed me to publish a schedule. I included some small breaks and an intro and outro, but as I was the only moderator it kept it rather short.

For the actual event Christian helped me to setup everything in OBS and map it to a stream deck, so I only had to push buttons, but it was still pushing the correct button at the correct time! So with every message I got more and more excited but also nervous as I recognized I will have a big, excited audience and everything was so well prepared that I was the only one who could mess up.

Stream of the Foreman Birthday event 2021

If you watch the recorded event at youtube, you will know what I mean. But you can also directly jump into the first talk from Manisha Singhal “Deploying servers in an Application Centric Way” where she introduces the Foreman plugin Application Centric Deployment which allows to deploy all the systems required for one application using Ansible. If you want to dive deeper into it also her example deploying an Elastic Stack and official documentation is available.

The second talk was by Matthias Dellweg of the Pulp project who gave “Pulp 3 introduction for Katello users – exploring the backend and tracing issues” which will hopefully help many Katello users in the future. The cli got directly packaged and included in the repositories on the event so you can directly try Matthias tips.

The third one is a great example for the community involvement in the project as Maria Agaphontzev did a “Demo and Feedback session for the new Job invocation wizard”, so there was directly the option to influence the future of this part of Foreman. If you still have some feedback for her, you can comment on her pull-requests or in the community forum.

In “Katello for Debian based systems: Update and Outlook” by Quirin Pamp you can learn about the state for Debian support, why development was slowed down and how they will get it going in the future. It looks like some small steps are still needed for feature parity to RPM support, but there are already plans to not stop there like adding support for source packages! If you are interested you can even join the discussion.

An always welcome talk is the “Red Hat Product manager update”. This time it was done by Dana Singleterry who told us about the plans Red Hat has for future development and as everything of this has to happen in Foreman, Katello and Pulp the community will directly benefit from this. And for the live Q&A Dana joined from the co-driver’s seat while traveling! This is some great commitment!

And last but not least Lukáš Zapletal told us “The story of webhooks plugin” which was a great mix of story telling and technical talk ending by him playing Happy Birthday on the piano. So watch this talk even if you are not using the Foreman plugin hooks at the moment and not thinking about using webhooks and shellhooks in the future! And if you already think answering questions from the co-driver’s seat is great commitment, then Lukáš is also over the top here because he had a garden party including a live stream of the event to celebrate Foreman’s Birthday and was answering questions from there!

Lukáš Zapletal live on the Foreman Birthday event 2021

But as I said having great talks is only one aspect and depending on your preferences even not the most important which brings me to the social event. As I do not like online conferences very much, I wanted a social event as near as possible to a normal conference and when asked our Events team told me they have planned something called workadventure for stackconf. So after a look into, I committed myself to the solution and just wanted to get feedback how it worked out on the much bigger conference. Because of me waiting on the feedback and other time limiting factors it was not possible to build a new setup for the Birthday Event, so I asked about re-decorating the one from stackconf what our Webservices team did.

Workadventure on Foreman Birthday event 2021

So while I did the stream more and more people used workadventure to connect and I was told people really enjoyed it. There were message popping up like “Melanie is stalking people” or “It is like a really conference I am missing out on talks”, so I think I reached my goal! And when I joined after the livestream I could still talk to people about 2 hours long until the last one left.

So from all the feedback I got the event was a great success and as I was only the one who brought all the pieces together my thanks goes to our Events team and Christian for their support and help, our Webservices team for the technical parts like the chat instance and workadventure, the speakers for their talks, Melanie and Bernhard who helped me with getting speakers, also Melanie, our and ATIX Marketing team for promoting the event and of course every one attending the event and making it such a great experience.

So I hope in-person events will be a thing in the near future and the Foreman community can come together next year on FOSDEM and Config Management Camp like we did before the pandemic and I am looking forward to next year’s Foreman Birthday event which will be hosted by ATIX again!

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.