RunDeck (Open Source) ist eine Automatisierungssoftware für Jobs und Deployments auf Unix/Linux Systemen, inklusive einer Web-Oberfläche für die Jobverwaltung und Rechtevergabe. Das Tool klinkt sich auf den Servern per SSH ein (Key/Passwort), es braucht auf dem Zielsystem kein Agent.

RunDeck ist geschrieben in Java. Es ist ein geniales Tool um selbst erstellte Skripts Remote auszuführen, deren Ausführung zu überwachen, zeitbasiert– (ähnlich Cronjob) oder triggerbasiert– (zB nach einem Jenkins Job) oder manuell jederzeit anzustossen. Kurz: RunDeck ist eine Art «Schweizer Taschenmesser» für Remote Skriptausführung wie z.B. File-copy Jobs, Deployments, Start/Stop Jobs in einer heterogenen Linux/Unix (RedHat/Debian/Ubuntu/Solaris/AIX/HP-UX, usw., und sogar BSD) Umgebung.

Es gibt kein Node-Limit, es können hunderte oder tausende Server zeitgleich administriert werden.

Extremer Performance Gewinn dank MySQL

Leider hat RunDeck nach der Installation eine sehr träge, langsame Oberfläche – auch die derzeit aktuelle Version 2.6.2 . Das liegt an der dateibasierten Verwaltung, anstelle der Einbindung einer echten Dantebank. In jedem Fall sollte so rasch wie möglich in eine MySQL Datenbank migriert werden. Danach fliegt die Oberfläche regelrecht dahin. Die Migration ist relativ einfach gemacht:

  1. Exportiere jedes Projekt mit der „Archive Export“ Funktion.
  2. Erstelle eine MySQL Datenbank mit berechtigtem User , hier als Beispiel DB=rundeckdb, User=rundeckuser, Host=localhost, MySQL Port=3306
  3. Stoppe RunDeck
  4. Folge der offiziellen Migrationsanleitung, im Beispiel hier mussten folgende Properties in die rundeck-config.properties:
    1. dataSource.url = jdbc:mysql://localhost:3306/rundeckdb?autoReconnect=true
      rundeck.projectsStorageType=db
      dataSource.username = rundeckuser
      dataSource.password = DeinDBUserPassworthier
      dataSource.driverClassName=com.mysql.jdbc.Driver
      # Enables DB for Project configuration storage
      rundeck.projectsStorageType=db
  5. Es empfiehlt sich auch den Config Storage und den (SSH) Key Storage verschlüsselt in die DB zu nehmen, anstatt filebasiert zu belassen. Die offizielle Migrationsanleitung erklärt, welche Properties in dasselbe  rundeck-config.properties müssen
  6. Starte RunDeck
  7. Importiere jedes Projekt mit der „Archive Import“ Funktion.

That’s it.

Ich werde demnächst weiter über Rundeck berichten. Bis anhin habe ich noch kein besseres Open Source Tool gefunden, das für Deployments auf Linux/Unix eine Web-Oberfläche anbietet, welche sogar noch mit abgestuften Rechten versehen werden kann. Jeder Job, sei es Deploy oder Start/Stop einer Applikation, kann je nach Gruppe- oder Usern abgestuft berechtigt werden. Ein Entwickler kann so z.B. auf TEST deployen, aber bei INT und PROD lediglich zuschauen was gerade vom Operating deployed wird.

Mehr kann ich dazu noch nicht sagen, alle diese Rechte-Möglichkeiten habe ich noch nicht im Detail ausprobiert.

Vermutlich ist Ansible Tower ein ganz ähnliches Tool, aber gerade das WebGUI (das gibts nur in der «Tower» Edition) ist wiederum kostenpflichtig. Also wieder nichts.

 


Schroeffu

Der Autor ist Schweizer, verheiratet, Vater von bisher einem Kind und seit November 2015 zu seiner liebevollen Frau nach Braunschweig, Deutschland, ausgewandert. Mit im Gepäck: Die Familienplanung, jede Menge Plüsch-Pinguine und die Tastatur zum bloggen.

1 Kommentar

Ansible In Enterprise-Umgebung: Puppet & Co Ergänzen » Schroeffu.blog · 18. April 2016 um 16:27

[…] habe ich RunDeck erwähnt, wie ich RunDeck dank MySQL eine bessere Performance geben konnte. Aber RunDeck ist nicht das […]

Schreibe einen Kommentar

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