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:
- FileSet benennen
- Include/Exclude-Pfade mit Dateiauswahl hinzufügen
- Komprimierung, Signatur und ACL-Optionen setzen
- Generierte Konfiguration vorschauen
- 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.