Icon Rufen Sie uns an
+49 441.309197-69 +49 441.309197-69

Packaging python applications

Posted by Ruben Schuller on Monday, December 04, 2017

Various tools and applications used by bytemine are written in Python. During the development of the CrashPlan Pro Icinga check, the question arose how to make it deployable reasonably hassle-free. Following is described a way to package a small python application which fetches our home page into one executable file which can be moved around systems.

Clean environments with virtualenv

We will be using virtualenv for development. It creates a local python environment, so we don't have to clutter our global python installation with dependencies:

$ virtualenv venv             # create a new virtualenv, stored in the "venv" subfolder
$ . venv/bin/activate         # activate virtualenv by sourcing the activation script
(venv) $ pip install requests # install requests package in the virtualenv
(venv) $ python -c 'import requests; print requests.get("https://bytemine.net").text'
<!DOCTYPE html>
<html class="no-js">

To record the packages installed in the virtualenv, we can use:

(venv) $ pip freeze > requirements.txt

and install them somewhere else using:

(another-venv) $ pip install -r requirements.txt

Adding setup.py

To make a module distributable, the pythonic way is to write a setup.py script using setuptools. This is also required for uploading to PyPI.

The files of the module have to be in a subdirectory of the path containing setup.py, together with an empty file __init__.py to let python know that this directory is an importable module:

$ ls -1 *


$ cat mymodule/mymodule.py
import requests
def main():
    print requests.get("https://bytemine.net").text
if __name__=="__main__":

setup.py contains information about the author, depencencies, etc. If the described module is a script which can be executed, an entry point can also be described for which the setup will create a command to run it (e.g. $VIRTUAL_ENV/bin/mymodule if installed in a virtualenv):

from setuptools import setup

    description="My small testing module",
    author="bytemine GmbH",

Afterwards we can execute python setup.py install to install our package into the active python environment. The requirements are usually the same as reported by pip freeze, but optionally allow for more complicated setups.

Installing it somewhere

Now we have a python package which can be installed using pythons setuptools. One way to install our package would be to create a tarball of the sources using python setup.py sdist, copy it somewhere and install it - possibly into a virtualenv - with python setup.py install. But this requires activating the virtualenv each time we want to run it:

$ . venv/bin/activate && mymodule

This works, but isn't great. Each time we want to install it we have to create a virtualenv, either manually or using a deployment script.

Packing it up with pex

pex enables packaging a python application together with its depencencies into one executeable file, which only requires a python interpreter to run.

Following the official documentation, we can install pex like this, installing it to $HOME/bin:

$ virtualenv pex-venv
$ . pex-venv/bin/activate
(pex-venv) $ pip install pex
(pex-venv) $ pex pex requests -c pex -o ~/bin/pex
(pex-venv) $ deactivate
$ PATH=$HOME/bin:$PATH && export PATH
$ pex --version                                                                                                                                                                                       
pex 1.2.13

To package our application we run pex like the following, "." requests that the current directory should be included in the pex file (using our setup.py):

$ pex . --disable-cache -m mymodule.mymodule -o mymodule.pex

During development, the switch --disable-cache should be used, otherwise pex would not include changes in our source code as long as version in setup.py isn't changed.

The resulting file mymodule.pex can now be used with python interpreters of the same version (2 or 3) and architecture (because of python C-extensions) is available:

$ ./mymodule.pex
<!DOCTYPE html>
<html class="no-js">

Take a look at the pex documentation for how to package for other environments. With a recently introduced feature, you can even build pex files which support multiple platforms and interpreter versions (though I haven't tested this yet!).

Packaging the package

At bytemine, software is usually deployed using the packaging mechanism of the distribution used. To create such packages we use fpm-cookery. Returning to the beginning of this post, this is the recipe used to package the CrashPlan Pro Icinga check:

class CPPAlertCheck < FPM::Cookery::Recipe
    description 'bytemine CrashPlan Pro alert check for icinga'
    name     'bytemine-cpp-alert-check'
    version  '0.0.2'
    vendor   'bytemine'
    revision  1
    homepage 'https://www.bytemine.net/'
    source   "https://files.bytemine.net/#{name}-#{version}.tgz"
    sha256   'cab3a90c4f30f774dd16acd60f764210008b7c56d7195bc565038f54cbbc545b'
    arch     'x86_64'
    maintainer 'bytemine GmbH <support@bytemine.net>'
    depends 'python2.7'

    def build

    def install
        share(name).install "cpp-alert-check.pex"
        share(name).install "README.md"

With fpm-cookery installed we can now run

$ fpm-cook

and have our package dropped in pkg/bytemine-cpp-alert-check_0.0.2-1-amd64.deb. The type of package is by default set to match the system you run fpm-cookery on. To build for other distributions the -t TARGET switch can be used, for example fpm-cook -t rpm.


Having the possibility to have full python applications stored in one file is a handy tool to easily run it somewhere else. As all depencencies are included, the resulting pex file can also be packaged for distributions, regardless which version of python modules they ship.


FUNKE MEDIENGRUPPE switches from Slack to Mattermost

Posted by Daniel Rauer on Friday, October 13, 2017


FUNKE MEDIENGRUPPE is one of Germany’s premier media houses with over 125 publications. Funke focuses on regional media as well as women’s magazines and TV guides, both in print and digital.

Recently, Funke switched from Slack to Mattermost to accelerate its digital transformation through a modern communication solution that remains fully under the control of IT.


FUNKE MEDIENGRUPPE has its sights set on becoming Germany’s leading media house. Founded in 1948, the company primarily focuses on two business segments: regional media, as well as women’s magazines and TV guides and their intelligent digital interlacement. Currently, Funke employs 6,000 people and oversees the production of about 20 women’s magazines, 20 TV guides and more than 100 advertising papers—as well as numerous online publications.

Funke has had to grow and transform many times over the course of its 80 years in the media business. The German publishing house is currently transforming from traditional to digital media, making software development a core competency and focusing on delivering real-time, high-availability online services. To do this, it is critical that the efforts of journalists, technologists and general staff members are aligned.

The media world moves quickly. When stories break and news coverage needs to be coordinated, media companies are faced with the daunting task of delivering rapid reports that are accurate while protecting the sources’ confidentiality. This requires reporters and journalists to stay connected to editors, producers and other colleagues at all times. Otherwise, there’s a major risk that deadlines get missed or, worse yet, inaccurate news gets printed.

Succeeding in the fast-moving news industry starts with having access to the right communication tools. After outgrowing IBM Notes and its built-in messenger, Funke moved to Outlook, utilizing email and groupware features like calendaring, task management and scheduling.

But the company still needed messaging. Funke initially deployed Slack, a U.S.-based online messaging service for small businesses. However, Slack was only a temporary fix. With the European Union’s General Data Protection Regulation going into effect in 2018, IT needed to be in full control of its communications in order to keep confidential information private, ensure that sources remain anonymous and to prevent stories from leaking prior to publication.


After doing its due diligence, Funke eventually came across Mattermost, a private-cloud alternative to Slack built on an open source platform. Mattermost offers the security, configurability and scalability needed for an enterprise-grade messaging experience from any connected device. Once messages, files and images are sent through Mattermost, relevant employees can easily find and use that data—making the average Funke editorial staffer’s workflow much more efficient.

To make the switch to Mattermost, Funke partnered with bytemine, a German IT services provider. Since then, Funke hasn’t looked back.

“We chose Mattermost because we needed quick team communication without the complexity of email and we needed a self-hosted alternative to Slack,” explains Tim Estermann, a senior engineer at Funke. “We have a really big base of users who are not programmers, so we needed a solution that is easy to navigate, enables employees to use custom emojis and integrates with third-party applications.”

The days of endless email threads and people trapped in conversations they couldn’t leave were suddenly over.


Over 1,300 members of Funke’s journalism and technical staff now use Mattermost to help deliver more than 125 publications across Germany. The solution brings the right people into the right conversations with the right tools—including calendaring, help desk, issue reporting and tracking, and infrastructure monitoring—to increase organizational agility, efficiency and innovation. Funke deploys Mattermost to a private cloud under IT control, where the conversations, usage patterns and IP addresses of its staff are not shared with outside parties.

“Mattermost is now our standard communications tool and we’re looking forward to embedding it further into our daily working lives,” Estermann says.

Primarily, Mattermost—which is available in over a dozen languages, including German—serves as a communication tool that keeps Funke’s journalists and editorial staffers connected when they are scattered across Germany and other countries (e.g., Austria). The media group also uses Mattermost for a number of other activities, including:

  • Issue tracker integration with JIRA and Mattermost. At any given point in time, Funke’s technologists oversee at least 50 different projects. To stay on top of incident management and project management, the media company routes JIRA updates through Mattermost.
  • Calendar integration with Desknet and Mattermost. Funke uses Mattermost to maintain a distributed calendar for content planning and coordination. This ensures that reporters, journalists and other employees know what they’re supposed to be working on and when projects are expected to be turned in.
  • Infrastructure monitoring with Nagios. Funke uses Mattermost to ensure its tech infrastructure remains available. To this end, the company relies on Nagios to monitor all server infrastructure and automatically report to designated channels in Mattermost.
  • Rapid bug reporting with Mattermost messaging. Tools aren’t helpful when they’re not working as designed. Whenever an employee finds a bug in a software package deployed across Funke, that person can use Mattermost to inform the right technicians with screenshots, video, file attachments and formatted text, including monospace.
  • Help desk. Not all of Funke’s employees are “tech wizards”. Mattermost also serves as a support channel for users who need help figuring things out.

Thanks to Mattermost’s secure real-time communications capabilities, Funke is even further along on its journey of digital transformation. Initially, the publishing house moved 400 employees to Mattermost so they could coordinate production and assignments digitally. After the switch proved successful, Funke moved an additional 900 users to Mattermost—including entire newspaper staffs and technical departments.

Looking ahead

Mattermost has already provided Funke with measurable benefits: more efficiency, improved collaboration on story development and increased employee engagement, to name a few. But the media company plans to leverage the platform even further in the future.

Moving forward, the media company plans to integrate Mattermost with even more tools it relies on, including Cisco Jabber for video conferencing.

“For the future, we are really looking forward to integrating our existing video conferencing system. We also are anticipating deeper integrations with our infrastructure and applications,” says Estermann. “Mattermost is now our standard communications tool and we’re looking forward to embedding it further into our daily working lives.”

Thanks to Mattermost, Funke is now able to serve better content to its readers and deliver more potential customers to its advertisers - a win-win scenario.

Is your company also moving from traditional to digital? Learn more about how other enterprises are using Mattermost to accelerate decision making and drive competitive advantage by contacting our sales team today.

We look forward to hearing from you!


FUNKE MEDIENGRUPPE is on its way to become Germany’s prime media house and focuses on two business segments: regional media, as well as women’s magazines and TV guides and their intelligent digital interlacement. The portfolio covers regional newspapers (e.g., Westdeutsche Allgemeine Zeitung, Hamburger Abendblatt, Berliner Morgenpost), advertising papers, women’s magazines and TV guides (e.g., HÖRZU, TVdigital, BILD der FRAU, Frau im Spiegel) and numerous regional websites.

About Mattermost

Mattermost provides enterprise-grade collaboration solutions for the world’s leading organizations on a vibrant open source platform. Our private, hybrid and public cloud solutions offer secure, configurable, highly scalable messaging across web, mobile and PC with archiving, search and deep integration across in-house systems.


it sa 2017 - wir stellen aus!

Posted by Felix Kronlage on Thursday, August 03, 2017

Vom 10. bis zum 12. Oktober trifft sich die Avantgarde der kommerziellen IT-Security Anbieter in Nürnberg auf der it-sa 2017. Diese Veranstaltung hat in den letzten Jahren sehr an Popularität gewonnen und auch wir werden dieses Jahr als Aussteller teilnehmen.

it-sa 2017 Logo

Mehr Zeit für Schönes

Gemeinsam mit unseren Partnerfirmen NetKnights und Rempartec stellen wir in Halle 10.1 am Stand 208 aus.

Uns drei Firmen verbindet nicht nur das Interesse an IT-Sicherheit sondern auch, das wir unseren Kunden ermöglichen wollen, mehr Zeit für Schönes zu haben.


idb logo

Nachhaltige IT Infrastruktur ist sichere und verlässliche IT Infrastruktur - unseren Beitrag zu einem nachhaltigen IT Management ist unsere Infrastrukturdatenbank - die idb. Diese ermöglicht nicht nur den Status Quo von IT Infrastruktur sichtbar zu machen - sondern auch die Historie von Elementen.

Durch die Mandantenfähigkeit eignet sich die IDB nicht nur für die eigene Umgebung, sondern ist auch für Dienstleister und Systemhäuser ein ideales Werkzeug zur Erfassung und Dokumentation von Kundeninfrastruktur.


Neben der IDB werden wir auch die neueste Version von cryptorage auf der it-sa 2017 präsentieren - schliesslich ist ihre Zeit zu schade um sich Sorgen um den Transfer von Dokumenten zu machen - cryptorage schafft ihnen mehr Zeit für Schönes.

Sehen wir uns auf der it-sa 2017?

Wir freuen uns auf Sie! Gerne können Sie vorab auch bereits einen Termin mit uns vereinbaren!


Produktportfolio um Mattermost erweitert

Posted by Felix Kronlage on Monday, July 24, 2017

mattermost logo

In IT-zentrischen Umgebungen wird E-Mail zunehmend durch Echtzeitkommunikation ergänzt. Auf dem Smartphone sind Kommunikationswege wie Gruppenchats mittels WhatsApp nicht mehr wegzudenken - warum also solche Funktionen nicht auch am Arbeitsplatz haben?

bytemine - Mattermost-Partner in Europa

bytemine hat sein Produktportfolio jetzt um die führende Open Source Messaging Lösung Mattermost erweitert.

Mattermost ist eine Open-Source Alternative zu Diensten wie Slack. Anders als Slack - welches ein reines Software-as-a-Service Angebot darstellt - ist Mattermost auf den Betrieb in einer eigenen Umgebung ("On-Premise") ausgelegt.


Mattermost wird als quell-offene Software unter der MIT-Lizenz freigegeben. Es gibt von Mattermost die Team-Edition, sowie zwei kommerzielle Aufbauten, die E10 und die E20 Edition. Diese beiden Varianten ergänzen Mattermost um Funktionen die im Enterprise-Umfeld relevant(er) sind - beispielsweise LDAP/AD Anbindung, Multi-Factor Authentifizierung oder SAML (E20). Eine gute Uebersicht bietet folgender Vergleich der Editionen. Es gibt native Anwendungen für die gängigen Betriebssysteme sowie mobilen Plattformen. Desweiteren ist Mattermost komplett als Webanwendung hervorragend nutzbar.

In der Variante E20 ist auch der Betrieb als Cluster möglich.

bytemine und Mattermost

bytemine bietet sowohl den Vertrieb der Software also auch natürlich Service und Support rund um Mattermost an. Der Betrieb eines eigenen Mattermost-Servers in der Hosting-Umgebung von bytemine ist ebenfalls möglich. Zusammen mit den Kollegen der Adfinis Sygroup aus der Schweiz sind wir der Anlaufpunkt für Mattermost Projekte in Europa.


Durch die verschiedensten Integrationsmöglichkeiten mit anderen Diensten lässt sich Mattermost ideal in die Workflows einbetten, so lässt sich Mattermost mit vielen Ticketingsystemen verbinden, so das bei Eröffnen von neuen Support-Tickets diese beispielsweise auf einem Mattermost-Kanal auftauchen. Für uns als monitoring-affine Leute ist eine Anbindung an das Monitoring ganz oben auf der Liste. Slack hat in den letzten Jahren enorm an Popularität gewonnen - dadurch gibt es eine grosse Anzahl an Software-Paketen die Anbindungen und Integrationen mit Slack bieten. Mattermost hat eine Kompatibilitätslayer zu Slack-Integrationen, so dass diese problemlos mit Mattermost verwendet werden können. Gerne beraten und unterstützen wir Sie auch bei der Anbindung ihrer Anwendungen an Mattermost!

Mattermost + Kopano

Screenhost of Kopano with Mattermost

Als Kopano Partner hat uns besonders die Ankündigung einer Integration von Mattermost und Kopano gefreut. Die Integration wird es dann ermöglichen direkt aus dem Chat Termine einzustellen, Aufgaben zu verteilen oder Kontakte zu teilen.

ChatOps? Was ist das eigentlich?

Ich bin kein Freund von den vielen neuen *Ops Modewörtern - jedoch helfen manche Modewörter etwas in ein Wort zu packen, was man schon ewig macht. Bei bytemine haben wir seit vielen Jahren einen Chatserver. Dieser hatte nie das Ziel E-Mail zu ersetzen oder zu verdrängen - jedoch das Ziel gewisse Kommunikationsabläufe zu erleichtern und Informationen schneller austauschen zu können. Wird auf unserem Chat beispielsweise eine Ticketnummer von einem Supportfall erwähnt, so wird automatisch die Betreffzeile des Tickets eingeblendet, damit alle Beteiligten auch den Kontext bekommen. Die andere Richtung ist, das auf dem Chat aufgrund eines Textbefehls bestimmte Aktionen ausgeführt werden. Am Beispiel des Monitoring: Ein Alert kann mittels eines Kommandos auf dem Chat bestätigt werden.


Melden Sie sich bei uns wenn Sie Mattermost ausprobieren wollen oder weitere Fragen haben! Gerne helfen wir auch bei bestehenden Setups oder der Entwicklung von Integrationen!


Willkommen Peter Sicarevic

Posted by Felix Kronlage on Wednesday, July 19, 2017

Peter Sicarevic Profilbild

Seit Juli 2017 haben wir mit Peter Sicarevic Verstärkung im Professional Services und Support Team bekommen. Einige unserer Kunden haben Peter bereits kennengelernt - von Oktober 2016 bis März 2017 hat Peter bei uns bereits im Rahmen seiner Umschulung gearbeitet.

Als frischgebackener Fachinformatiker Systemintegration wird Peter sich primaer um die Infrastrukturbelange bei Kunden kuemmern - vielerorts ist er hierbei in heterogenen Umgebungen unterwegs.

Peter, Was fasziniert dich an der Arbeit mit IT Infrastruktur?

Das Zusammenspiel von Ideen und Technik, gepaart mit der schier unbegrenzten Möglichkeit Lösungen zu finden und umzusetzen. Es gibt kein Schema F und das gefällt mir.

Worauf freust du dich bei bytemine in den kommenden 12 Monaten?

Auf die Herrausforderungen, meine Kollegen und die Möglichkeit mich weiterzuentwickeln (und auf den Urlaub natürlich :-) ).

Was machst du, wenn du nicht fuer bytemine an der Konsole aktiv bist?

Es fallen immer mal kleinere Arbeiten für die Infrastruktur bei ubuntuusers oder die des ubuntu Deutschland e.V. an, u.a. der bevorstehende Wechsel auf icinga2 oder auch hardwareseitig im Rechenzentrum Köln. Ansonsten bin ich gerne an der Luft und verbringe so gut es geht meine Freizeit draussen abseits von Bildschirmen.

Klassiker - was ist dein Lieblingseditor?

vim! Was sonst?!

Welches IT Buch wuerdest du zum Lesen empfehlen?
Puh, da gibt es schon ein paar auf meiner Liste. Hängt natürlich auch von den eigenen Interessen ab, hier mal ein Teil meiner "must have" fürs Bücherregal um den Rahmen nicht zu sprengen.
  • Computer-Netzwerke von Rüdiger Schreiner
    Meiner Meinung nach definitiv Pflichtlektüre für Netzwerke und allem drum und dran.
  • Anatomie of an Internet Routing Protocol von John T. Moy
    Speziell auf OSPF ausgelegt, steht auf meiner "noch zu lesen"-Liste und ist eine Empfehlung meines Cisco-Dozenten damals gewesen.
  • Versionsverwaltung mit Git
    Ein sehr gutes Buch und eine gute Grundlage für die Arbeit mit Git. Ich kenne Sujeevan privat von ubuntuusers und mir gefällt die Art und Weise, wie er in dem Buch das große unbekannte namens Git erklärt.
  • icinga2 - Ein praktischer Einstieg ins Monitoring
    DAS Buch zu icinga2 von Lennart Betz und Thomas Widhalm.
  • In diesem Sinne: Willkommen, Peter!

Eigenes Fenster anstatt neuer Tabs in der Kopano WebApp / DeskApp

Posted by Jan Schoone on Wednesday, May 31, 2017

Kopano Webseite

Die Kopano DeskApp und natürlich auch die WebApp öffnen neue E-Mails typischerweise in einem neuen Tab – und zwar innerhalb Kopanos. Das kann man als Vorteil sehen, manchmal nervt es aber auch. Zum Beispiel kommt es vor, dass ich beim Beantworten längerer, umfangreicher E-Mails die Original-E-Mail und vielleicht sogar weitere Mails sehen möchte, während ich die Antwort tippe.

Hier hilft der kleine Button, auf den der obige Pfeil zeigt. Das ist die PopOut-Funktion, welche den entsprechenden Tab in einem eigenen Fenster öffnet.

In den Einstellungen unter Mail -> Allgemeine E-Mail-Einstellungen kann man wählen, ob E-Mails standardmäßig in einem „WebApp Reiter“ oder einem neuen „Browserfenster“ geöffnet werden sollen.

Disclaimer: Text und Bildmaterial wurde mit freundlicher Genehmigung bereitgestellt; Quelle


Mit der Kopano WebApp/DeskApp freie Zeitslots im Kalender finden

Posted by Ingo von Thielau on Monday, May 29, 2017

Kopano Webseite

Es ist immer eine Herausforderung, mehrere Teilnehmer einer Besprechung zusammen zu treiben. Hier hilft die Kopano WebApp mit einer kleinen, fast schon unauffälligen Funktion: Beim Anlegen eines Termins kann man über den Button „Teilnehmer hinzufügen“ Personen auswählen, die teilnehmen sollen. Neben dem eigentlich „Termin“-Tab gibt es dann auch noch einen „Planen“-Tab. Dieser zeigt das obige Bild mit den vermutlich hinlänglich bekannten Frei/Gebucht-Zeiten.

Jetzt kann man natürlich selbst scannen, wann es freie Zeitslots gibt. Oder man lässt es Kopano für sich machen. Der Pfeil zeigt auf eine Liste mit Buttons, die Zeitslots vorschlagen, an denen alle Teilnehmer gleichzeitig verfügbar sind. Diese gibt es pro Tag. Den Tag, an dem es prinzipiell freie Zeitslots gibt, muss man also noch selbst finden.

Disclaimer: Text und Bildmaterial wurde mit freundlicher Genehmigung bereitgestellt; Quelle


Termine in der Kopano WebApp/DeskApp kopieren

Posted by Behnam Zare on Tuesday, May 16, 2017

Kopano Webseite

In der WebApp (und das alles gilt auch für die DeskApp) können Termine im Kalender schnell und einfach per drag & drop verschoben werden. Was aber ist, wenn ein Termin kopiert werden soll? Das mache ich tatsächlich öfters und es ist wirklich sehr einfach - wenn man weiß wie es geht ;-).

Zunächst muss in der Kalenderansicht der zu kopierende Termin mit einem einfachen Mausklick markiert werden. Ein Rahmen um den Termin zeigt an, dass dieser markiert ist. Rechts oberhalb des Kalenders findet man die beiden kleinen Icons, auf die der rechte Pfeil zeigt. Der Papierkorb beinhaltet genau so wenige Überraschungen wie das daneben stehende Kopiersymbol. Ein Klick darauf öffnet den daneben stehenden Standarddialog. Hier sollte der aktuelle Kalender bereits markiert sein, so dass ein simpler Klick auf Kopieren exakt dasselbe Ereignis neben dem soeben markierten noch einmal anlegt.

Disclaimer: Text und Bildmaterial wurde mit freundlicher Genehmigung bereitgestellt; Quelle


Shortkeys in der Kopano WebApp/DeskApp aktivieren

Posted by Behnam Zare on Monday, May 15, 2017

Kopano Webseite

Drucken, Löschen, durch E-Mails navigieren und viele weitere Funktionen können in der Kopano Webapp mit Tastenkombinationen ausgelöst werden. Diese sind aber nicht immer aktiv. Das entsprechende Menü steckt in den "Einstellungen" unter "Tastenkombinationen". Hier kann man verschiedene Profile aktivieren. In bestimmten Sprachumgebungen gibt es Konflikte, darum ist manchmal das Basis-Profil eine gute Wahl. Weiter unten im selben Menü findet sich eine Liste aller aktiven Tastenkombinationen.

Disclaimer: Text und Bildmaterial wurde mit freundlicher Genehmigung bereitgestellt; Quelle


Infrastrukturdatenbank Meilensteinplan 2017

Posted by Daniel Rauer / Felix Kronlage on Tuesday, May 09, 2017

Je mehr Kunden wir die Infrastrukturdatenbank vorstellen und je öfter wir die IDB auf Konferenzen zeigen desto mehr Ideen entstehen welches die nächsten Schritte sein könnten und welche Funktionen von uns und unseren Kunden gewünscht werden. Mit der Veröffentlichung der IDB Kernanwendung sowie ihrer Adapter auf GitHub, unter einer von der OSI anerkannten Lizenz, haben wir letztes Jahr einen grossen Schritt getan: Ein internes Werkzeug zu einer Open Source Lösung zu entwickeln.

Aktuell bewegen wir uns innerhalb der Version 1.6. Die Versionierung und der Entwicklungsablauf der IDB sind einfach: Die Entwicklung passiert auf dem development Branch, aus welchem neue Versionen in einen release Branch herausgelöst werden. Für den 1.6er Zweig werden nunmehr lediglich kritische Fehler behoben; daraus werden bei Bedarf entsprechende Versionen 1.6.4, 1.6.5 usw. gebaut.

Funktionen der IDB Kernanwendung sind an die Version der IDB gebunden; Funktionen die lediglich Adapter betreffen dagegen nicht. Daher haben wir sowohl einen versionsbasierten Meilensteinplan für die Kernwanwendung wie auch für die Adapter. Diese Pläne enthalten alle wichtigen Erweiterungen um einen Eindruck zu vermitteln wohin sich die IDB entwickeln wird; all die kleinen Verbesserungen und Korrekturen sind jedoch nicht enthalten. Die vollständige Liste mit offenen Fehlern und ToDos findet sich auf GitHub.

Meilensteine der Kernanwendung

Version 1.7 - geplante Veröffentlichung Ende Q2 2017

Zwei wesentliche Neuerungen werden in dieser Version enthalten sein:

  • Mandantenfähigkeit
  • Version 3 der API


In der IDB gibt es das Konzept der "Owner", inhaltlich übersetzbar mit "Kunde" oder "Besitzer". Diese sind mit Ressourcen wie Maschinen (physisch wie virtuell), Inventarobjekten etc. verbunden. Die Mandantenfähigkeit schränkt die Sichtbarkeit dieser Objekte auf mit dem Anwender assoziierte "Owner" und deren Objekten ein. Wir werden zeitnah über die technische Umsetzung dessen hier auf unserem Blog berichten.


Mit der dritten Version der API werden wir alle Ressourcen sichtbar machen, im Gegensatz zur aktuellen Version 2 die dies nur für Maschinen und Software Pakete ermöglicht. Die kommende Mandantenfähigkeit ist hier sinnvollerweise bereits berücksichtigt um unbefugte Zugriffe auch via API sicher zu verhindern. Das die APIv3 ein wirklich grosser Schritt ist, sieht man an der Liste der Neuerungen die uns mit der Fertigstellung ermöglicht werden:

Durch die Möglichkeit auf das gesamte Datenmodell der IDB zuzugreifen können wir nun sowohl NeDI als auch oxidized integrieren: Dann werden nicht nur Netzwerke und Switche über die API verwaltet, sondern auch Dateien können über die API an Objekte gehängt werden. Dadurch wird ermoeglicht automatisiert Router- und Firewallkonfigurationen in der IDB versioniert zu verwalten.

Ebenfalls wird der Ansible Adapter, von dem im Verlauf des Textes noch die Rede sein wird, auf die APIv3 aufbauen und Teil der Arbeit an der Version 1.7 sein.

Weiterhin werden wir uns dem Thema Reporting annehmen - allerdings wird dies nicht direkt in der Kernanwendung umgesetzt sondern mittels eines Reportingwerkzeugs. Durch die APIv3 sollte es künftig möglich sein Anwendungen wie JasperReports anzukoppeln.

Version 1.8 - geplante Veröffentlichung Ende Q3 2017

Wesentliche Neuerungen dieser Version werden sein:

  • Passwort- bzw. Zugangsdatenverwaltung via Vault
  • neue, anpassbare Übersichtsseite
  • Erwartungsmanagement

Passwort- bzw. Zugangsdatenverwaltung via Vault

Ein integrierter Passwortmanager basierend auf Hashicorp's Vault wird eine der grossen Neuerungen in Version 1.8. Da die IDB Adapter viele verschiedene Informationsquellen durchsuchen, und Zugangsdaten zu u.a. diesen Systemen sicher abgelegt werden sollten, bietet sich der Einsatz von Vault an; ein Passwortverwaltungssystem ist aber in jedem Fall eine Bereicherung für den Anwender.


Aktuell ist die Oberfläche der IDB sehr technisch und wenig ansprechend. Die tabellarischen Ansichten sind für viele Anwendungsfälle hilfreich und ausreichend, aber für eine schnelle Übersicht könnte ein "Dashboard"-ähnliche Ansicht besser geeignet sein. Im Raum steht die Überlegung das Anwender sich eigene Berichtselemente auf einer Startseite einrichten, um wiederkehrende Abfragen und Filter schnell im Zugriff zu haben, beispielsweise die zehn am längsten nicht gewarteten Maschinen.


Erwartungsmanagement ist eine Funktion mit der wir Unterschiede zwischen dem Ist- und dem Soll-Zustand einer Ressourcen deutlicher herausstellen wollen. Über die Funktion Netzwerkscans mittels der API in die IDB zu speisen wird es dann möglich sein zu erkennen ob zum Beispiel Netzwerkports geöffnet sind die laut Soll-Definition in der IDB nicht offen sein sollten. Diese Informationen werden ebenfalls über die API abrufbar sein, so dass man hier an ein Monitoringsystem anbinden könnte um bei Soll/Ist Abweichungen alarmieren zu können. Wichtig: Die IDB sammelt Informationen und bereitet sie auf, Alarmierungen wie in diesen Fällen müssen daher über ein Monitoringsystem abgewickelt werden.

Version 2.0 - geplante Veröffentlichung Ende Q4 2017

Auf der Agenda für die Version 2.0 steht "Compliance" als grosses Thema. Wir haben bewusst Entwicklungskapazität zurückgehalten um den Funktionen aus 1.7 und 1.8 den letzten Feinschliff zu verpassen, oder an diesen Veränderungen basierend auf der Erprobung unserer Nutzer im Feld vorzunehmen.


Die Kernanwendung speichert bereits aufgrund ihrer Architektur und eingesetzten Werkzeuge Änderungen an Objekten. Wie grossartig wäre es durch den Einsatz von WORM verhindern zu können das ein Objekt nachträglich manipuliert wird. Die Darstellung eines Zustand eines Systems zu einem bestimmten Zeitpunkt sollte in der IDB verlässlich sein in der Hinsicht das sie definitiv und unveränderbar ist.

Planung für die Adapter

Auf diese Adapter werden wir uns in 2017 konzentrieren:


Der idbiaas Adapter sammelt Informationen von diversen Infrastructure-as-a-Service Providern. Begonnen haben wir mit DigitalOcean sowie libvirt-basierenden Umgebungen. Diese werden als nächstes implementiert:

  • OpenStack
  • Amazon AWS
  • CloudStack

Ansible Adapter

Nachdem Ansible durchaus verbreitet im Einsatz ist, und einige unserer Kunden und Partner Interesse an einer Ansible-Unterstützung durch die IDB bekundet haben, kommen wir dem gerne nach und implementieren einen Ansible Adapter. Ein Teil der Arbeit daran wird sein die IDB zu erweitern damit sie als "external node classifier" / "inventory provider" für Ansible dienen kann.

OPSI Adapter

OPSI ist eine Lösung zur Verwaltung von Arbeitsplätzen und hat (als serverseitig Linux-basierte Software) einen starken Fokus auf Windows Desktops. Diese werden zur Zeit nicht optimal von der IDB unterstützt. Der idbad Adapter ist ein Versuch aus Windowsumgebungen mehr Informationen zu gewinnen. OPSI implementiert eine gute REST-API und hält nicht nur Informationen über die Maschinen vor, denn als Softwareverteilungssystem kann auch auf detaillierte Informationen zur eingesetzten Software zugegriffen werden.

PuppetDB Adapter

Die IDB entstand mit einem klaren Blick auf Puppet als primäre Informationsquelle. Daher ist die Informationsgewinnung aus einer PuppetDB aktuell nicht über einen Adapter umgesetzt, sondern als Teil der Kernanwendung. Um sicher zu gehen das alle Informationen über einen zentralen Punkt - die API - eingespielt werden wird die PuppetDB Anbindung künftig ebenfalls über einen eigenen Adapter umgesetzt.

Older posts: 1 2 ... 23