DEV Community

Martin Alfke for betadots

Posted on AI-assisted

# OpenVox 9 ist da!

Am 2. Oktober 2026 hat die OpenVox-Project-Community das Release 9.0 von OpenVox veröffentlicht.
Damit basiert die Community-Version auf demselben Unterbau wie Puppet Core 9, das im August 2026 erschienen ist.

Der folgende Text ist eine Übersetzung mit kleineren Anpassungen vom Release Blog Posting.

Wir haben soeben OpenVox 9.0.0 veröffentlicht! Hierbei handelt es sich um eine Aktualisierung der Plattformbasis; das bedeutet, dass alle Kernabhängigkeiten auf aktiv gepflegte Versionen umgestellt wurden. Wer die jüngste Flut an CVE-Meldungen mit Sorge verfolgt hat, für den ist dieses Release genau das Richtige.

OpenVox 9 umfasst openvox-agent und openvoxdb in Version 9.0.0 sowie openvox-server in Version 9.0.1, ergänzt durch openfact 6.2.1.
(Das erste Release von openvox-server trägt die Nummer 9.0.1, da die Version 9.0.0 bereits durch ein Artefakt belegt war, das während der Beta-Phase versehentlich auf Clojars veröffentlicht worden war.)
Zudem wurde eine Reihe längst veralteter Code-Bestände entfernt.
Neue Funktionen sind für die Version 10.x geplant.

Release-Hinweise und Dokumentation

Die vollständigen Release-Hinweise, einschließlich Fehlerbehebungen und der Änderungen in den jeweiligen Vorabversionen, findet man hier:

Die Dokumentation zu OpenVox 9 findet man unter:

OpenVox 9 beziehen

OpenVox-9-Pakete werden unter der Bezeichnung openvox9 bereitgestellt.
Um diese Repositories zu konfigurieren, muss das Paket openvox9-release installiert werden:

Pakete für macOS und Windows findet man unter:

Wenn Beta-Versionen oder Release-Candidates getestet wurden, gelanget man durch ein normales Paket-Upgrade zur finalen Version.
Vorabversionen enthielten eine Tilde in der Versionsnummer (z. B. 9.0.0~rc4), damit sie bei der Sortierung unterhalb der finalen Version eingeordnet wurden.

OpenVox 8 bleibt über die openvox8-Repositories verfügbar. Es wird weiterhin für mindestens sechs Monate wichtige Fehlerbehebungen und Sicherheits-Updates erhalten.
OpenVox-8-Agents können weiterhin mit OpenVox-9-Servern kommunizieren. Man muss nicht alles auf einmal umstellen.

Wichtigste Änderungen im Vergleich zu OpenVox 8

  • openvox-agent Ruby 4.0 (zuvor Ruby 3.2) und OpenSSL 3.5 LTS.
  • openvox-server verwendet JRuby 10.1, das mit Ruby 4.0 kompatibel ist. Dies ist ein Upgrade von JRuby 9.4, das mit Ruby 3.1 kompatibel war.
  • openvox-server und openvoxdb werden offiziell unter Java 21 und 25 unterstützt und getestet; die Unterstützung für Java 17 wurde eingestellt. Die Pakete laufen unter Java 25, sofern die Plattform dies bereitstellt, andernfalls unter Java 21. Die FIPS-Pakete laufen nur unter Java 21, da die Bouncy-Castle-FIPS-Bibliotheken nur bis Java 21 zertifiziert sind. Der Service nutzt jetzt den Paketpfad und nicht die Alternative (/usr/bin/java).
  • openvoxdb wird nun mit PostgreSQL 18 getestet.
  • openvox-agent enthält openfact 6; damit entfällt die Fact-Option ldapname, und es werden Warnungen zu künftigen Entfernungen (geplant für OpenVox 10) ausgegeben.

Vor dem Upgrade

Dies ist ein Major-Release mit Breaking Changes (Änderungen, die bestehende Konfigurationen oder Abläufe beeinträchtigen können).
Bitte die Release Notes vollständig durchlesen und die OpenVox 9.0.0 Release Notes beachten.

Die wichtigsten Informationen sind:

  • Der Standardwert für server ist nicht mehr puppet. Agents müssen server oder server_list konfigurieren oder SRV-Records verwenden (auch ca_server und report_server funktionieren für die jeweiligen Dienste). Ein Agent, der als Root ausgeführt wird, ohne dass eine dieser Optionen gesetzt ist, bricht mit einem Fehler ab.
  • Die Einstellung reports hat nun den Standardwert none anstelle von store. Setzen Sie reports = store auf Ihren Servern, wenn Sie darauf angewiesen sind, dass Berichte auf der Festplatte gespeichert werden.
  • Datenbindungen aus der Hiera-3-Ära sind entfallen. Die Einstellungen data_binding_terminus und environment_data_provider sowie der Hiera-3-Indirector-Terminus wurden entfernt; Hiera 5 ist der unterstützte Standard.
  • Java 21 ist nun erforderlich. Wenn die Dienste unter Java 17 starten, stürzen sie frühzeitig mit einer ClassNotFoundException für java.util.SequencedCollection ab.

Bekannte Probleme

Agent-Daemon kann gelegentlich beim Status „applying configuration“ hängen bleiben

Bei einer kleinen Anzahl von Nutzern wurde beobachtet, dass der puppet agent-Daemon keine Statusmeldungen mehr sendet, während ein per fork gestarteter Prozess mit der Bezeichnung puppet agent: applying configuration aktiv bleibt und sich nicht beendet (openvox#485).
Dies tritt selten auf: Die bisherigen Meldungen stammen von kleinen Linux-VMs mit nur einer vCPU, bei denen das Problem alle paar Tage auftrat.

Die Ursache ist eine seltene Race-Condition zwischen den Hintergrund-Threads für DNS-Auflösungen in Ruby (deren Verhalten sich in Ruby 3.3 und 3.4 geändert hat) und dem fork-Aufruf, der jeden Agent-Lauf einleitet.
Erfolgt der fork im ungünstigen Moment, übernimmt der Kindprozess eine gesperrte glibc-Resolver-Instanz (Mutex), wodurch jede Namensauflösung in diesem Kindprozess blockiert wird.
OpenVox 8 (Ruby 3.2) ist davon nicht betroffen.

OpenVox 9.0.0 enthält mehrere Änderungen, die die Wahrscheinlichkeit dieses Problems stark verringern und sicherstellen, dass sich der Daemon selbstständig erholt, sollte es dennoch auftreten:

  • Der Agent führt im Daemon keine Namensauflösungen mehr unmittelbar vor dem fork-Aufruf für einen Lauf durch (openvox#683); damit entfällt der in den Berichten identifizierte Auslöser.
  • Ein Lauf, der die Zeitvorgabe runtimeout überschreitet, wird nun beendet (abgebrochen), sodass der Daemon mit dem nächsten Lauf fortfahren kann (openvox#642, openvox#643).
  • openfact begrenzt die FQDN-Auflösung in seinen Hostname-Resolvern (openfact#177). Falls dieses Problem weiterhin auftritt, kann das Setzen von RUBY_TCP_NO_FAST_FALLBACK=1 in einer systemd-Override-Konfiguration für den puppet-Dienst die Häufigkeit des Auftretens verringern:
# systemctl edit puppet
[Service]
Environment=RUBY_TCP_NO_FAST_FALLBACK=1
Enter fullscreen mode Exit fullscreen mode

Ein Neustart des puppet-Dienstes bereinigt keinen bereits hängengebliebenen Kindprozess; dieser muss mittels SIGKILL beendet werden.
Sollte das Problem bei Version 9.0.0 aufstoßen, bitte im Issue openvox#485 Informationen hinterlegen.

FIPS-Pakete enthalten ältere Bouncy-Castle-JAR-Dateien

Die FIPS-Builds von openvox-server und openvoxdb enthalten einen älteren Satz von Bouncy-Castle-FIPS-JAR-Dateien.
Die neueste Version der Bouncy-Castle-FIPS-1.x-Reihe weist ein kleines Problem auf, das in einer stark eingeschränkten Konfiguration (außerhalb der Standardeinstellungen) zu Schwierigkeiten führen könnte; daher führen wir kein Update auf diese Version durch.
Stattdessen wird OpenVox 9.1 auf die Bouncy-Castle-FIPS-2.x-Reihe umsteigen, welche für FIPS unter Java 21 vollständig zertifiziert ist.

Vielen Dank

OpenVox 9 würde ohne all jene nicht existieren, die Pull-Requests eingereicht, Fehler gemeldet, Vorabversionen getestet und an Diskussionen über anstehende Änderungen teilgenommen haben.
Vielen Dank an alle!

Ein besonderer Dank gilt den Personen, die in diesem Entwicklungszyklus einen Großteil der Arbeit geleistet haben, darunter unter anderem:

  • Tim Meusel für seine Arbeit an nahezu allen Repositories: Aktualisierungen von Laufzeitumgebungen und Abhängigkeiten, CI, Release-PRs sowie SBOMs.
  • Charlie Sharpsteen, für seine Arbeit an Server, Datenbank, Laufzeitumgebung und Build-Tools sowie für die umfassende Überarbeitung der Dokumentation („Great Docs Reset“).
  • Michael Harp, für den enormen Umfang an Dokumentationsarbeit – einschließlich der Unterlagen für Version 9.x – sowie für die Ermittlung der Ursache des oben beschriebenen Agenten-Hängers.
  • Nick Burgan, für den Ausbau der Release-Infrastruktur, Smoke-Tests sowie die Arbeit an der Paketierung für Java und FIPS.
  • Haroon Rafique, für die Pflege der Clojure-Komponenten von openvox-server und openvoxdb, FIPS-Korrekturen und mehr. Sichere Standardeinstellung für server.
  • Martin Alfke, für die Aktualisierung großer Teile der Dokumentation für OpenVox und OpenFact.
  • Robert Waffen, für die Neugestaltung der Container-Images und die Einführung von Multi-Plattform-Builds.
  • Ben Ford, für die „Getting-Started“- und „Quickstart“-Anleitungen, die Dokumentations-Tools sowie die Katalogvalidierung im Agenten.
  • Jerome Charaoui, für die Debian-Paketierung und Korrekturen zur Reproduzierbarkeit.
  • Josh Partlow, für die arm64-Unterstützung und weitere Arbeiten an den Abnahmetests.
  • Austin Blatt, für die Migration auf Jetty 12.
  • Chris Boot, für wochenlange, geduldige Debugging-Arbeit im Zusammenhang mit openvox#485.
  • Miranda Streeter, für die Verbesserungen der Startgeschwindigkeit der Container-Images.

Bei Fragen oder Problemen mit diesen Releases bitte im #openvox Channel auf Slack oder #voxpupuli-openvox im IRC melden.
Details findet man unter https://voxpupuli.org/connect/.

Top comments (0)