Ein flexibler, modularer Job Runner zur Ausführung beliebiger Prozesse wie Hosting-Provisionierung, Rechnungsprozesse, Deployment oder individuelle Workflows. Der Runner ist als eigenständiger Service konzipiert, der Jobs über konfigurierbare YAML-Dateien entgegennimmt, ausführt und die Ergebnisse inklusive Logs und Artefakten verwaltet.
Der Runner soll als unabhängiger, modularer Service arbeiten, der über eine API angesteuert werden kann. Dadurch ist er flexibel in verschiedenste Backend-Systeme integrierbar und ermöglicht eine individuelle Steuerung und Erweiterung von Abläufen – von Provisionierung bis Abrechnung – ohne monolithisches System.
Das folgende Diagramm zeigt die grundlegende Architektur des Systems mit den Komponenten Backend, Runner-Daemon und Runner.
Beschreibung der Komponenten Backend: Erstellt und verwaltet Jobs über API oder Datenbank (z.B. via REST oder GraphQL). Zeigt den Status, verwaltet Nutzer & Rechte.
Runner-Daemon: Holt Jobs aus der Queue (z.B. Datenbank oder Message Broker). Plant und verteilt Jobs an verfügbare Runner-Instanzen. Überwacht Fortschritt und Status.
Runner: Führt den Job aus (z.B. Shell-Skripte, Docker-Container, etc.). Sendet Logs und Status zurück.
- YAML-basierte Job-Definitionen: Jobs können einfach und transparent in YAML beschrieben werden.
- Modulare Executor-Architektur: Unterstützt verschiedene Ausführungsumgebungen (z.B. Shell, Docker) und ist erweiterbar.
- Unabhängiges Logging: Logs werden separat geschrieben und können einfach verfolgt werden.
- Artefakt-Handling: Outputs und Artefakte der Jobs werden gesammelt und verwaltet.
- Callback-Mechanismus: Ergebnisse und Statusupdates können an beliebige Endpunkte gesendet werden.
- Daemon/Service-Betrieb: Für kontinuierlichen Betrieb und Job-Management, ideal für Automatisierung.
- Basis Runner, der Jobs aus YAML-Dateien laden und ausführen kann
- Modularer Executor für Shell- und Docker-Jobs
- Logging & Artefaktmanagement
- Callback-API für Statusupdates
- Service/Daemon-Modus zur automatischen Job-Verarbeitung
- Erweiterbare Executor-Plugins
- API-First-Architektur zur Backend-Anbindung (Backend bleibt frei wählbar)
Bestehende Tools sind oft stark auf bestimmte Anwendungsfälle (z.B. DevOps) oder Plattformen zugeschnitten. Dieser Runner bietet maximale Flexibilität und Unabhängigkeit, um beliebige Prozesse automatisiert und individuell steuerbar zu machen – offen, modular und erweiterbar.
- Job-Definitionen in YAML erstellen
- Runner starten und Jobs ausführen lassen
- Logs und Artefakte im definierten Verzeichnis überprüfen
- Callbacks nutzen, um Backend oder weitere Systeme zu benachrichtigen
Modular Runner ist Open Source und lebt von der Community!
Jede Idee, Bug-Report oder Pull Request ist willkommen.
MIT License
Mach mit und gestalte die Zukunft der Hosting-Automatisierung mit Modular Runner!
docker run --rm \
-v $(pwd)/tests:/app/tests \
-v /var/run/docker.sock:/var/run/docker.sock \
MASYONY/runner:latest run /app/tests/job-custom.yaml