Things done wrong: Softwaremanagement

Homer Simpson
Ich widme mich diesmal in meiner Reihe zu Konzepten mit fundamentalen Fehlern dem Thema Softwaremanagement. Wenn ich von Softwaremanagement rede, meine ich damit üblicherweise den Roll-Out von Software und auch das Update und da ich mich meist auf Linux beziehe auch Paketierung. Ich werde mich diesmal bei Software-Empfehlungen und Vorgehen ausschließlich auf Linux beziehen, aber ich hoffe meine Aussagen lassen sich auch auf andere Betriebssysteme anwenden.
Meist sehe ich, dass dem Thema Softwaremanagement kaum Gedanken gewidmet wurden, wenn ich mich in IT-Landschaften bewege. Dies ist auch verständlich, denn irgendwann startete das Thema Linux als kleine Alternative zu Unix und Windows oder die Umgebung war eh nicht groß. Nun ja, mit Virtualisierung hat sich dann meist ein Wachstum ergeben und man war mit diesem beschäftigt. Im Anschluss kam dann (hoffentlich) die Automatisierung um die Systeme wieder besser handhabbar zu machen. Und nun steht man mit einer Vielzahl von Systemen da, die alle laufen, produktiv sind und die man am liebsten gar nicht mehr anfassen möchte. Aber nun kommt plötzlich die böse IT-Sicherheit ums Eck und erwartet dass alle Systeme sicher sind, was erstmal heißt auf aktuellem Software-Stand! Ich denke dies können die meisten nachvollziehen!
(mehr …)

Dirk Götz
Dirk Götz
Senior 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.

Monthly Snap June: NetApp FAS 3140; News about OSMC and OSBConf; Katello; Open-Stack-Tage

June started with Georg looking for a new home for a used NetApp FAS 3140 we received from a client. The beautiful device is in good condition and can be fetched at our office, if you make a camerasmall donation.
My humble self, told you all you need to know about the Hackathon at OSMC and started the OSMC countdown with the presentation “OSMC 2014: From monitoringsucks to monitoringlove, and back” by Kris Buytaert. I also introduced the complete speaker lineup of Open Source Backup Conference to you.
Dirk introduced you all to Katello, the Foreman Plugin for Softwaremanagement and reported on why you should have a look at it, if you don’t have a provisioning and Configuration Management yet.
And Bernd wrote about what happed at his visit of Open-Stack-Tage in Frakfurt.

Softwaremanagement – Katello

Katello Logo
Da ich regelmäßig auf die Wichtigkeit von Softwaremanagement im Zusammenhang mit Konfigurationsmanagement verweise, mich zumindest mit Packaging in Form von RPMs häufig auseinandersetze und auch schon der Softwarelösung Spacewalk bzw. Red Hat Network Satellite 5 befasst habe, liegt es nahe mich auch mit Katello zu befassen. Insbesondere da dies ein Foreman-Plugin ist und auch das Upstream-Projekt zum Red Hat Network Satellite 6 ist.
Katello bündelt hierbei mehrere Anwendungen und integriert diese in die Foreman-Oberfläche. Namentlich sind dies Pulp für das eigentliche Softwaremanagment und Candlepin für das Subskriptionmanagement, welche dann wiederum ihre eigenen Abhängigkeiten wie etwa Gutterball für das Zertifikatsmanagement mitbringen. Schaut man sich die Abhängigkeiten an, ist man ganz froh, dass der Katello-Installer die komplette Konfiguration für einen übernimmt und man nicht jede Komponente einzeln installieren muss. Der Installer ist hierbei stark parametrierbar, da im Hintergrund Puppet-Code verwendet wird und die in diesem verwendeten Parameter über den Installer gesetzt werden können.
Nach der Installation erhalte ich also einen vollwertigen Foreman mit zusätzlichen Snippets für die Anbindung an das Softwaremanagement. Dieses kann aus zwei Richtungen betrachtet werden. Zum einen den Hosts welche als sogenannte Content-Hosts auftauchen, was es ermöglicht Software-Repositories zuzuweisen, installierte Software abzufragen und wenn der entsprechende Agent auf dem System installiert ist sogar Softwareinstallationen und -updates aus der Weboberfläche heraus zu steuern.
Katello Content-Host
Natürlich geht dies nicht nur für einzelne Hosts sondern es lassen sich auch mehrere auswählen oder vordefinierte Sets in Form von Host Collections bilden.
Zum anderen gibt es den weit größeren Teil zum Management von Software. Hierbei hat man die Möglichkeit verschiedene Produkte zu definieren, welche dann auch wiederum aus verschiedenen Repositories bestehen. Somit ist es kein Problem sich beispielsweise die Icinga-Repositories in all ihrer Pracht lokal zu spiegeln. Einen eigenen Bereich bilden die Red Hat Repositories, wobei sich hier Subskription- und Softwaremanagement mischen, aber auch diese lassen sich mit dem Manifest aus dem Red Hat Network mit wenigen Mausklicks spiegeln. Die Synchronisation lässt sich hierbei über Pläne steuern, die auch direkt in der Oberfläche erstellt werden. Wirklich mächtig wird das ganze dann durch Content Views, die es erlauben feste Zusammenstellungen von Paketen zu erstellen und sich auch einfach in einander verschachteln lassen, und Livecycle-Environements, welche dann Content Views über die verschiedenen Stages wie Entwicklung, Test und Produktion hindurch bekannt macht. Somit ist es ein leichtes in Produktion nur getestete Updates einzuspielen!
Die Benennung Content View kommt übrigens daher, dass der gleiche Mechanismus auch für Puppet-Code und Docker-Container funktioniert. Letztere habe ich allerdings bisher nicht getestet, für Puppet-Code ist dieses Feature ganz nett, aber nur wenn man hier keine hohe Dynamik braucht. Wenn dies eine Anforderung ist, insbesondere auch für den Einstieg in Puppet, empfehle ich daher zumindest für Puppet die Content-Views zu ignorieren und normale Enviroments zu nutzen. Die Content-Views sind aber flexibel genug um auch mal ein Sicherheitsupdate schnell in alle Stage zu promoten.
Vom Host aus betrachtet sehen Content-View und Lifecycle-Environment dann folgendermaßen aus:
Katello System Content-View
Das Subskription-Management wird die meiste Zeit wohl nur genutzt werden um sich gegen Red Hat entsprechend rechtlich sauber aufzustellen. Diese bieten hierbei dann auch eine Lösung virt-who für ihre virtuellen Subskriptions bei denen der Host subskripiert wird und damit die Nutzung beliebig vieler virtueller Installationen erlaubt. Aber auch die interne Nutzung eröffnet viele Möglichkeiten. Für Katello ist standardmäßig das Organisation/Location-Feature von Foreman aktiv, so dass die Subskriptions auf die einzelnen internen Bereiche aufgeteilt werden können. Außerdem können auch selbst erstellte Produkte entsprechend limitiert werden, will man verhindern das beispielsweise kostenpflichtige Software überall installiert wird oder dass ein Wildwuchs an zum Beispiel Icinga-Installationen entsteht.
Klingt alles gut? Find ich auch! Allerdings möchte ich nicht ein paar Nachteile verschweigen. Zum einen ist das Produkt noch relativ jung und es finden sich immer noch Kinderkrankheiten, zum anderen treibt so eine Lösung die Komplexität nach oben. Außerdem lassen sich aktuell nur RPM-basierte Systeme verwalten, zumindest bis die Entwicklung bei Pulp-Debian weiter vorangeschritten ist. Hier hat Spacewalk noch die Nase vorn, allerdings gefällt mir Content-View und Lifecycle-Environment sehr gut, was beim Spacewalk alles noch individuell geskriptet werden muss. Auch kann Spacewalk nicht nur das Softwaremanagement fernsteuern, sondern beliebige Befehle absetzen, aber auch hieran arbeitet das Foreman-Team.
Wer also noch eine Lösung dieser Art sucht, sollte sich Katello oder auch den Satellite 6 definitiv mal ansehen. Wer schon eine Lösung hat und mit dieser zufrieden ist, sollte die Entwicklung zumindest verfolgen bis Kinderkrankheiten beseitigt und letzte Features implementiert wurden. Und falls wer zwar schon Softwaremanagement, aber noch kein Provisioning und Konfigurationsmanagement hat, sollte sich Foreman anschauen.

Dirk Götz
Dirk Götz
Senior 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.