openSUSE:Build Service Backend Schlüsselkomponenten
Inhaltsverzeichnis
Backend
Die wichtigsten OBS Server sind unter /usr/lib/obs/ zu finden.
bs_srcserver
Es gibt einen Quellserver je OBS, der die Quellen, Revisionen, Metadaten des Projekts/Paketes, die Handhabung des "Link", die (Einreichung)Anfragen, die Suche der Binärpakete usw. organisiert.
Der Quellserver ist die Schnittstelle für das Frontend und kann Ereignisse zu einem oder mehreren Repserver weiterleiten.
Er hat eine http-Schnittstelle.
bs_repserver
Das System leitet die Binärdateien zum Worker oder dem Frontend-API. Er empfängt Bauergebnisse der Worker und wartet die Baugeschichte.
Er handhabt auch die resultierenden Pakete und benachrichtigt den signierenden Server.
Er bietet die Berechnung der Bauabhängigkeiten an, die die Binärpakete für spezielle Jobs für den lokalen Bau benötigen (gewöhnlich "osc build").
Die Repserver können mehrere Mal vorhanden sein, zum Beispiel als Gastgeber für i586-Pakete auf dem einen System und ppc auf einem anderen.
Die Worker registrieren sich auf den Repserver für die Baujobs.
Er hat eine http-Schnittstelle.
bs_scheduler
Es gibt einen scheduler Service für jede Architektur, er berechnet Bau-Abhängigkeiten über alle Pakete in allen Projekten und allen Repositorys. Er erzeugt Bau-Job-Beschreibungen für den Fall, er findet Pakete, die gebaut werden können.
Er nimmt alle Vorkommnisse über geänderte Quellen oder beendete Baujobs zur überprüfung der Abhängigkeiten.
Er hat keine API, aber kann Kommandos durchführen, die als Ereignisse über andere Service gesendet werden.
bs_dispatcher
Es gibt einen Dispatcher je OBS, der Anfragen an die Worker aushändigt, der auf Jobs basiert, die durch die Scheduler erzeugt werden.
Er hat keine API, liest nur die Job-Verzeichnisse und benachrichtigt die Worker.
bs_publisher
Der Publisher reagiert auf die veröffentlichten Ereignisse, grundsätzlich durch den Scheduler. Er transferiert Pakete für ein Projekt zu den Repository-Bäumen, erzeugt Metadaten und lädt einen zum Downloadserver hoch.
Er hat kein API, liest nur Ereignisse aus dem Publish-Verzeichnis und liest die Projekt-config, wie die Repos zu erzeugen sind.
bs_worker
Der Worker wir auf einem Bau-Host gestartet und organisiert den aktuellen Bau. Er spricht mit den Quell- und Repo-Servern und wird durch den Dispatcher benachrichtigt.
Ein bs_worker kann für viele OBS-Server-Instanzen bauen.
bs_warden
Ist ein optionaler Prozess, um den bs_workers zu überwachen. Er killt laufende Job-Registrierungen, für den Fall, dass ein Worker abstürzt ohne eine klare Abschaltnachricht.
bs_signer
Ist ein empfohlener Prozess, um Pakete nach dem Bau zu signieren. Der Prozess muss laufen, wenn Sie BSConfig::sign... konfiguriert haben.
Prozess
Ein Worker wird durch einen Dispatcher ausgelöst, fordert Binärpakete vom Reposerver, Quellen vom Srcserver und sendet die resultierenden Pakete zum Repserver.
Der Repserver löst dann ein Ereignis für den signierenden Server aus. Ist signiert, wird der Scheduler den Job abholen, ihn in ein Repository sortieren und schließlich ein Ereignis für den Publisher erzeugen, wenn der Repository-Bau-Zyklus abgeschlossen ist.
Lesen Sie auch : en:openSUSE:Build Service Deployment