Nächste: Dienste zur Stromverbrauchsverwaltung, Vorige: Samba-Dienste, Nach oben: Dienste [Inhalt][Index]
Cuirass ist ein Werkzeug zur kontinuierlichen Integration für Guix. Es kann sowohl bei der Entwicklung helfen als auch beim Anbieten von Substituten für andere (siehe Substitute).
Das Modul (gnu services cuirass)
stellt den folgenden Dienst zur
Verfügung:
Der Diensttyp des Cuirass-Dienstes. Sein Wert muss ein
cuirass-configuration
-Verbundsobjekt sein, wie im Folgenden
beschrieben.
Um Erstellungsaufträge („Build Jobs“) hinzuzufügen, müssen Sie sie im
specifications
-Feld der Konfiguration eintragen. Mit dem folgenden
Beispiel würden alle Pakete aus dem Kanal my-channel
erstellt.
(define %cuirass-specs #~(list (specification (name "my-channel") (build '(channels my-channel)) (channels (cons (channel (name 'my-channel) (url "https://my-channel.git")) %default-channels))))) (service cuirass-service-type (cuirass-configuration (specifications %cuirass-specs)))
Um das Paket linux-libre
, das im vorgegebenen Guix-Kanal definiert
ist, zu erstellen, schreibe man die folgende Konfiguration.
(define %cuirass-specs #~(list (specification (name "my-linux") (build '(packages "linux-libre"))))) (service cuirass-service-type (cuirass-configuration (specifications %cuirass-specs)))
Für eine Beschreibung der anderen Konfigurationsmöglichkeiten und des Spezifikations-Verbundsobjektes selbst, siehe das Specifications in Handbuch zu Cuirass.
Die Informationen, die sich auf Erstellungsaufträge beziehen, werden direkt
in deren Spezifikation festgelegt, aber globale Einstellungen des
cuirass
-Prozesses sind über andere Felder der
cuirass-configuration
zugänglich.
Datentyp, der die Konfiguration von Cuirass repräsentiert.
cuirass
(Vorgabe: cuirass
)Das Cuirass-Paket, das benutzt werden soll.
log-file
(Vorgabe: "/var/log/cuirass.log"
)An welchen Ort die Protokolldatei geschrieben wird.
web-log-file
(Vorgabe: "/var/log/cuirass-web.log"
)An welchem Ort die Protokolldatei der Weboberfläche gespeichert wird.
cache-directory
(Vorgabe: "/var/cache/cuirass"
)Ort, wo Repositorys zwischengespeichert werden.
user
(Vorgabe: "cuirass"
)Besitzer des cuirass
-Prozesses.
group
(Vorgabe: "cuirass"
)Gruppe des Besitzers des cuirass
-Prozesses.
interval
(Vorgabe: 60
)Anzahl der Sekunden, bevor ein Repository wieder neu geladen wird und danach Cuirass-Aufträge behandelt werden.
parameters
(Vorgabe: #f
)Parameter aus der angegebenen Parameterdatei lesen. Die unterstützten Parameter werden im Parameters in Cuirass-Handbuch beschrieben.
remote-server
(Vorgabe: #f
)Ein cuirass-remote-server-configuration
-Verbundsobjekt, um den
Mechanismus für entfernte Erstellungen zu benutzen, oder #f
, um den
voreingestellten Erstellungsmechanismus zu benutzen.
database
(Vorgabe: "dbname=cuirass host=/var/run/postgresql"
)database als die Datenbank mit den Aufträgen und bisherigen
Erstellungsergebnissen benutzen. Weil Cuirass als Datenbanktreiber
PostgreSQL benutzt, muss database eine Zeichenkette sein wie
"dbname=cuirass host=localhost"
.
port
(Vorgabe: 8081
)Portnummer, die vom HTTP-Server benutzt wird.
host
(Vorgabe: "localhost"
)Auf der Netzwerkschnittstelle für den Rechnernamen host lauschen. Nach
Vorgabe werden Verbindungen vom lokalen Rechner localhost
akzeptiert.
specifications
(Vorgabe: #~'()
)Ein G-Ausdruck (siehe G-Ausdrücke), der zu einer Liste von Spezifikations-Verbundsobjekten ausgewertet wird. Spezifikations-Verbundsobjekte werden im Specifications in Cuirass-Handbuch beschrieben.
use-substitutes?
(Vorgabe: #f
)Hierdurch wird zugelassen, Substitute zu benutzen, damit nicht jede Abhängigkeit eines Auftrags erst aus ihrem Quellcode heraus erstellt werden muss.
one-shot?
(Vorgabe: #f
)Spezifikationen nur einmal auswerten und Ableitungen nur einmal erstellen.
fallback?
(Vorgabe: #f
)Pakete lokal erstellen, wenn das Substituieren einer vorerstellten Binärdatei fehlschlägt.
extra-options
(Vorgabe: '()
)Zusätzliche Befehlszeilenoptionen, die beim Ausführen des Cuirass-Prozesses mitgegeben werden sollen.
Cuirass kennt zwei Mechanismen, wie damit Ableitungen erstellt werden können.
Um diesen Erstellungsmodus zu aktivieren, übergeben Sie ein
cuirass-remote-server-configuration
-Verbundsobjekt für das Argument
remote-server
des cuirass-configuration
-Verbundsobjektes. Der
cuirass-remote-server-configuration
-Verbund wird im Folgenden
beschrieben.
Dieser Erstellungsmodus skaliert wesentlich besser als der Vorgabemodus. Mit diesem Erstellungsmodus wird auch die Erstellungfarm von GNU Guix auf https://ci.guix.gnu.org betrieben. Er sollte dann bevorzugt werden, wenn Sie mit Cuirass eine große Anzahl von Paketen erstellen möchten.
Der Datentyp, der die Konfiguration des Cuirass-„remote-server“-Prozesses repräsentiert.
backend-port
(Vorgabe: 5555
)Der TCP-Port, um mit remote-worker
-Prozessen mit ZMQ zu
kommunizieren.
log-port
(Vorgabe: 5556
)Der TCP-Port des Protokollservers.
publish-port
(Vorgabe: 5557
)Der TCP-Port des „Publish“-Servers, um Substitute mit anderen zu teilen.
log-file
(Vorgabe: "/var/log/cuirass-remote-server.log"
)An welchen Ort die Protokolldatei geschrieben wird.
cache
(Vorgabe: "/var/cache/cuirass/remote"
)Im cache-Verzeichnis Erstellungsprotokolldateien speichern.
trigger-url
(Vorgabe: #f
)Sobald ein Substitut erfolgreich heruntergeladen wurde, wird dessen Einlagerung als Narinfo („bake the substitute“) auf trigger-url direkt ausgelöst.
publish?
(Vorgabe: #t
)Wenn dies auf falsch gesetzt ist, wird kein „Publish“-Server gestartet und
das publish-port
-Argument ignoriert. Verwenden Sie es, wenn bereits
ein eigenständiger „Publish“-Server für den „remote-server“ läuft.
public-key
private-key
Die angegebenen Dateien als das Paar aus öffentlichem und privatem Schlüssel zum Signieren veröffentlichter Store-Objekte benutzen.
Mindestens eine entfernte Arbeitermaschine („remote worker“) muss auf irgendeiner Maschine im lokalen Netzwerk gestartet werden, damit tatsächlich Erstellungen durchgeführt werden und deren Status gemeldet wird.
Der Datentyp, der die Konfiguration des Cuirass-„remote-worker“-Prozesses repräsentiert.
cuirass
(Vorgabe: cuirass
)Das Cuirass-Paket, das benutzt werden soll.
workers
(Vorgabe: 1
)workers-viele parallele Arbeiterprozesse starten.
server
(Vorgabe: #f
)Keine Maschinen über Avahi ermitteln, sondern stattdessen eine Verbindung
zum Server unter der in server
angegebenen IP-Adresse aufbauen.
systems
(Vorgabe: (list (%current-system))
)Nur Erstellungen für die in systems angegebenen Systeme anfragen.
log-file
(Vorgabe: "/var/log/cuirass-remote-worker.log"
)An welchen Ort die Protokolldatei geschrieben wird.
publish-port
(Vorgabe: 5558
)Der TCP-Port des „Publish“-Servers, um Substitute mit anderen zu teilen.
substitute-urls
(Vorgabe: %default-substitute-urls
)Die Liste der URLs, auf denen nach Substituten gesucht wird, wenn nicht anders angegeben.
public-key
private-key
Die angegebenen Dateien als das Paar aus öffentlichem und privatem Schlüssel zum Signieren veröffentlichter Store-Objekte benutzen.
Laminar ist ein sparsamer und modularer Dienst zur Kontinuierlichen Integration. Statt einer Weboberfläche zur Konfiguration werden versionskontrollierte Konfigurationsdateien und Skripte verwendet.
Laminar ermutigt dazu, bestehende Werkzeuge wie bash und cron zu benutzen, statt das Rad neu zu erfinden.
Der Diensttyp des Laminar-Dienstes. Sein Wert muss ein
laminar-configuration
-Verbundsobjekt sein, wie im Folgenden
beschrieben.
Alle Konfigurationswerte haben bereits vorgegebene Einstellungen. Eine minimale Konfiguration, um Laminar aufzusetzen, sehen Sie unten. Nach Vorgabe läuft die Weboberfläche auf Port 8080.
Datentyp, der die Konfiguration von Laminar repräsentiert.
laminar
(Vorgabe: laminar
)Das Laminar-Paket, das benutzt werden soll.
home-directory
(Vorgabe: "/var/lib/laminar"
)Das Verzeichnis mit Auftragskonfigurationen und Verzeichnissen, in denen Aufträge ausgeführt werden („run“-Verzeichnissen).
bind-http
(Vorgabe: "*:8080"
)Die Netzwerkschnittstelle mit Port oder der Unix-Socket, wo laminard auf eingehende Verbindungen zur Web-Oberfläche lauschen soll.
bind-rpc
(Vorgabe: "unix-abstract:laminar"
)Die Netzwerkschnittstelle mit Port oder der Unix-Socket, wo laminard auf eingehende Befehle z.B. zum Auslösen einer Erstellung lauschen soll.
title
(Vorgabe: "Laminar"
)Der Seitentitel, der auf der Web-Oberfläche angezeigt wird.
keep-rundirs
(Vorgabe: 0
)Setzen Sie dies auf eine ganze Zahl, die festlegt, wie viele Ausführungsverzeichnisse pro Auftrag vorgehalten werden. Die mit der niedrigsten Nummer werden gelöscht. Die Vorgabe ist 0, d.h. alle Ausführungsverzeichnisse werden sofort gelöscht.
archive-url
(Vorgabe: #f
)Die von laminard angebotene Weboberfläche wird aus dieser URL die Verweise auf Artefakte archivierter Aufträge zusammensetzen.
base-url
(Vorgabe: #f
)Was Laminar in Verweisen auf eigene Seiten als Basis-URL verwenden soll.
Nächste: Dienste zur Stromverbrauchsverwaltung, Vorige: Samba-Dienste, Nach oben: Dienste [Inhalt][Index]