February 10, 2026 · Beerlesklopfer

Dev Log #4: Konfigurations-Assistenten — Onesimus lernt dein Setup

Bareos-Konfiguration ist mächtig. Sie ist auch ein Minenfeld aus Tippfehlern, vergessenen Direktiven und „Ich dachte, das war das richtige Keyword"-Momenten. bconsole validiert die Config erst, wenn man versucht sie zu laden — und dann kann es schon zu spät sein.

Onesimus liefert jetzt schema-gesteuerte Konfigurations-Assistenten, die wissen, was gültig ist, bevor man auf Speichern klickt.

Wie es funktioniert

Wir haben die Direktiven-Schemas aus der Bareos-Dokumentation und dem Quellcode in JSON-Metadaten-Dateien extrahiert. Jeder Ressourcentyp (Job, JobDefs, FileSet, Client, Storage, Schedule) hat ein Schema, das beschreibt:

  • Gültige Direktiven und ihre Typen
  • Pflicht- vs. optionale Felder
  • Erlaubte Werte und Defaults
  • Abhängigkeiten zwischen Direktiven

Die Assistenten nutzen diese Schemas, um Formulare dynamisch aufzubauen. Ändere den Job-Typ von Backup auf Restore, und das Formular passt sich an — zeigt nur die Direktiven, die zutreffen.

FileSet-Assistent

Der FileSet-Assistent war der erste, der ausgeliefert wurde. Ein FileSet in bconsole erstellen bedeutet, eine Config-Datei mit der richtigen Syntax zu schreiben. In Onesimus ist es ein geführter Dialog:

  1. FileSet benennen
  2. Include/Exclude-Pfade mit Dateiauswahl hinzufügen
  3. Komprimierung, Signatur und ACL-Optionen setzen
  4. Generierte Konfiguration vorschauen
  5. Direkt auf dem Director deployen

Der „Deploy"-Schritt nutzt configure add, um die Konfiguration an einen laufenden Director zu übertragen — kein Dateien editieren, kein Neustart.

Client-Assistent

Einen neuen Bareos-Client hinzuzufügen bedeutete bisher, Director-Konfigurationsdateien zu editieren, Passwörter zu generieren und Dienste neu zu starten. Der Client-Assistent automatisiert diese Zeremonie: Hostnamen eingeben, und Onesimus generiert die nötige Konfiguration für Director und File Daemon.

Was kommt

Der Job/JobDefs-Assistent ist in Arbeit — der komplexeste, da Jobs Clients, FileSets, Schedules und Pools referenzieren. Bleibt dran.

Quellcode auf GitHub ansehen →