Nächste: Linux-Dienste, Vorige: PAM-Einbindedienst, Nach oben: Dienste [Inhalt][Index]
Das Build Farm Front-End zum Bedienen von Erstellungsfarmen hilft, große Mengen von Guix-Paketen erstellen zu lassen. Damit werden Erstellungen angenommen und der Status der Erstellungsfarmen angezeigt.
Diensttyp für das Build Farm Front-End zum Bedienen von
Erstellungsfarmen. Sein Wert muss ein bffe-configuration
-Objekt sein.
Dieser Datentyp repräsentiert die Konfiguration des Build Farm Front-End.
package
(Vorgabe: bffe
)Welches Paket für das Build Farm Front-End benutzt werden soll.
user
(Vorgabe: "bffe"
)Das Systembenutzerkonto, mit dem der Dienst ausgeführt wird.
group
(Vorgabe: "bffe"
)Die Systembenutzergruppe, mit der der Dienst ausgeführt wird.
arguments
Eine Liste von Argumenten, die ans Build Farm Front-End übergeben werden
sollen. Dabei handelt es sich um die Argumente an die Prozedur
run-bffe-service
, mit der der Dienst gestartet wird.
Zum Beispiel kann mit folgendem Wert das Build Farm Front-End dazu gebracht
werden, die auf data.guix.gnu.org
zur Verfügung gestellten
Ableitungen an der Erstellungskoordinator-Instanz einzureichen, wobei
angenommen wird, dass der Koordinator auf derselben Maschine läuft.
(list #:build (list (build-from-guix-data-service (data-service-url "https://data.guix.gnu.org") (build-coordinator-url "http://127.0.0.1:8746") (branches '("master")) (systems '("x86_64-linux" "i686-linux")) (systems-and-targets (map (lambda (target) (cons "x86_64-linux" target)) '("aarch64-linux-gnu" "i586-pc-gnu"))) (build-priority (const 0)))) #:web-server-args '(#:event-source "https://example.com" #:controller-args (#:title "example.com build farm")))
extra-environment-variables
(Vorgabe: ’())Zusätzliche Umgebungsvariable, die mit dem Shepherd-Dienst festgelegt werden.
Der Guix-Erstellungskoordinator („Guix Build Coordinator“) hilft dabei, Erstellungen von Ableitungen auf Maschinen zu verteilen, auf denen ein Agent läuft. Der Erstellungs-Daemon wird weiterhin benutzt, um die Ableitungen zu erstellen, der Guix-Erstellungskoordinator verwaltet nur die Zuteilung der Erstellungen und den Umgang mit den Ergebnissen.
Der Guix-Erstellungskoordinator setzt sich aus einem Koordinator und mindestens einem verbundenen Agentenprozess zusammen. Der Koordinatorprozess kümmert sich um Clients, die Erstellungen einreichen, und teilt Erstellungen den Agenten zu. Die Agentenprozesse kommunizieren mit einem Erstellungs-Daemon, welcher die Erstellungen eigentlich durchführt und die Ergebnisse an den Koordinator zurückgibt.
Es gibt ein Skript, um die Koordinatorkomponente des Guix-Erstellungskoordinators auszuführen, aber der Dienst für Guix benutzt stattdessen sein eigenes Guile-Skript, was in der Konfiguration benutzte G-Ausdrücke besser integriert.
Diensttyp für den Guix-Erstellungskoordinator. Sein Wert muss ein
guix-build-coordinator-configuration
-Objekt sein.
Der Datentyp, der die Konfiguration des Guix-Erstellungskoordinators repräsentiert.
package
(Vorgabe: guix-build-coordinator
)Das zu verwendende Guix-Erstellungskoordinator-Paket.
user
(Vorgabe: "guix-build-coordinator"
)Das Systembenutzerkonto, mit dem der Dienst ausgeführt wird.
group
(Vorgabe: "guix-build-coordinator"
)Die Systembenutzergruppe, mit der der Dienst ausgeführt wird.
database-uri-string
(Vorgabe: "sqlite:///var/lib/guix-build-coordinator/guix_build_coordinator.db"
)Die URI für die Datenbank.
agent-communication-uri
(Vorgabe: "http://0.0.0.0:8745"
)Die URI, die beschreibt, wie auf Anfragen von Agentenprozessen gelauscht wird.
client-communication-uri
(Vorgabe: "http://127.0.0.1:8746"
)Die URI, die beschreibt, wie auf Anfragen von Clients gelauscht wird. Mit der Client-API können Erstellungen eingereicht werden und derzeit findet dabei keine Authentifizierung statt. Das sollten Sie bedenken, wenn Sie hieran Einstellungen vornehmen.
allocation-strategy
(Vorgabe: #~basic-build-allocation-strategy
)Ein G-Ausdruck für die zu nutzende Zuteilungsstrategie. Angegeben wird eine Prozedur, die den Datenspeicher als Argument nimmt und in den Zuteilungsplan in der Datenbank einfügt.
hooks
(Vorgabe: ’())Eine assoziative Liste mit Hooks. Mit ihnen kann infolge bestimmter Ereignisse beliebiger Code ausgeführt werden, z.B. wenn ein Erstellungsergebnis verarbeitet wird.
parallel-hooks
(Vorgabe: ’())Sie können Hooks so einstellen, dass sie parallel ausgeführt werden. Mit diesem Parameter geben Sie eine assoziative Liste an, welche der Hooks parallel ausgeführt werden sollen. Der Schlüssel ist das Symbol für den Hook und der Wert ist die Anzahl Threads, die ausgeführt werden.
guile
(Vorgabe: guile-3.0-latest
)Mit welchem Guile-Paket der Guix-Erstellungskoordinator ausgeführt wird.
extra-environment-variables
(Vorgabe: ’())Zusätzliche Umgebungsvariable, die mit dem Shepherd-Dienst festgelegt werden.
Diensttyp für einen Guix-Erstellungskoordinator-Agenten. Als Wert muss ein
guix-build-coordinator-agent-configuration
-Objekt angegeben werden.
Der Datentyp, der die Konfiguration eines Guix-Erstellungskoordinator-Agenten repräsentiert.
package
(Vorgabe: guix-build-coordinator/agent-only
)Das zu verwendende Guix-Erstellungskoordinator-Paket.
user
(Vorgabe: "guix-build-coordinator-agent"
)Das Systembenutzerkonto, mit dem der Dienst ausgeführt wird.
coordinator
(Vorgabe: "http://localhost:8745"
)Das Passwort, das zum Herstellen einer Verbindung mit dem Koordinator verwendet werden soll.
authentication
Ein Verbundsobjekt, das beschreibt, wie sich dieser Agent beim Koordinator authentisiert. Mögliche Verbundsfelder werden im Folgenden beschrieben.
systems
(Vorgabe: #f
)Die Systeme, für die dieser Agent Erstellungen übernehmen soll. Voreingestellt verwendet der Agentenprozess den Systemtyp, auf dem er aktuell läuft.
max-parallel-builds
(default: #f
)Die Anzahl der Erstellungen, die parallel ausgeführt werden sollen.
max-parallel-uploads
(default: #f
)Die Anzahl, wie viele parallel hochgeladen werden sollen.
max-allocated-builds
(Vorgabe: #f
)Wie viele Erstellungen diesem Agenten höchstens zugewiesen werden können.
max-1min-load-average
(Vorgabe: #f
)Die durchschnittliche Last (Load Average), die bestimmt, ob der Koordinatoragent mit neuen Erstellungen beginnt. Wenn die Load Average über 1 Minute den angegebenen Wert übersteigt, wartet der Agent und beginnt keine zusätzlichen Erstellungen.
Wenn als Wert #f
angegeben wird, wird die Einstellung nicht
festgelegt und der Agent verwendet die Anzahl der Kerne, die das System
meldet, als maximaler Load Average über 1 Minute.
derivation-substitute-urls
(Vorgabe: #f
)URLs, von denen versucht werden soll, Substitute für Ableitungen herunterzuladen, wenn die Ableitungen noch nicht vorliegen.
non-derivation-substitute-urls
(Vorgabe: #f
)URLs, von denen versucht werden soll, Substitute für Erstellungseingaben herunterzuladen, wenn die Eingabe-Store-Objekte noch nicht vorliegen.
extra-options
(Vorgabe: ’())Extra command line options for guix-build-coordinator-agent
.
Der Datentyp, der einen Agenten repräsentiert, der sich bei einem Koordinator über eine UUID und ein Passwort authentisiert.
uuid
Die UUID des Agenten. Sie sollte durch den Koordinatorprozess erzeugt worden sein, in der Datenbank des Koordinators eingetragen sein und von dem Agenten benutzt werden, für den sie gedacht ist.
password
Das Passwort, das zum Herstellen einer Verbindung mit dem Koordinator verwendet werden soll.
Der Datentyp, der einen Agenten repräsentiert, der sich bei einem Koordinator über eine UUID und ein aus einer Datei gelesenes Passwort authentisiert.
uuid
Die UUID des Agenten. Sie sollte durch den Koordinatorprozess erzeugt worden sein, in der Datenbank des Koordinators eingetragen sein und von dem Agenten benutzt werden, für den sie gedacht ist.
password-file
Eine Datei mit dem Passwort, um sich mit dem Koordinator zu verbinden.
Der Datentyp, der einen Agenten repräsentiert, der sich bei einem Koordinator über einen dynamischen Authentisierungs-Token und den Agentennamen authentisiert.
agent-name
Der Name des Agenten. Er wird benutzt, um den passenden Eintrag in der Datenbank für ihn zu finden. Gibt es noch keinen Eintrag, wird automatisch einer hinzugefügt.
token
Dynamischer Authentisierungs-Token. Er wird in der Datenbank des Koordinators erzeugt und vom Agenten zur Authentisierung benutzt.
Der Datentyp, der einen Agenten repräsentiert, der sich bei einem Koordinator über einen aus einer Datei gelesenen dynamischen Authentisierungs-Token und den Agentennamen authentisiert.
agent-name
Der Name des Agenten. Er wird benutzt, um den passenden Eintrag in der Datenbank für ihn zu finden. Gibt es noch keinen Eintrag, wird automatisch einer hinzugefügt.
token-file
Eine Datei, in der der dynamische Authentisierungs-Token enthalten ist. Er wird in der Datenbank des Koordinators erzeugt und vom Agenten zur Authentisierung benutzt.
Der Guix-Datendienst („Guix Data Service“) verarbeitet und speichert Daten über GNU Guix und stellt diese zur Verfügung. Dazu gehören Informationen über Pakete, Ableitungen sowie durch Linting erkannte Paketfehler.
Die Daten werden in einer PostgreSQL-Datenbank gespeichert und stehen über eine Weboberfläche zur Verfügung.
Diensttyp für den Guix-Datendienst. Sein Wert muss ein
guix-data-service-configuration
-Objekt sein. Der Dienst kann optional
den getmail-Dienst erweitern und die guix-commits-Mailing-Liste benutzen, um
bei Änderungen am Guix-Git-Repository auf dem Laufenden zu bleiben.
Der Datentyp, der die Konfiguration des Guix-Datendienstes repräsentiert.
package
(Vorgabe: guix-data-service
)Das zu verwendende Guix-Datendienst-Paket.
user
(Vorgabe: "guix-data-service"
)Das Systembenutzerkonto, mit dem der Dienst ausgeführt wird.
group
(Vorgabe: "guix-data-service"
)Die Systembenutzergruppe, mit der der Dienst ausgeführt wird.
port
(Vorgabe: 8765
)Der Port, an den der Webdienst gebunden wird.
host
(Vorgabe: "127.0.0.1"
)Rechnername oder Netzwerkschnittstelle, an die der Webdienst gebunden wird.
getmail-idle-mailboxes
(Vorgabe: #f
)Wenn es festgelegt ist, wird es als Liste der Postfächer („Mailboxes“) eingerichtet, die der getmail-Dienst beobachtet.
commits-getmail-retriever-configuration
(Vorgabe: #f
)Wenn es festgelegt ist, bezeichnet dies das
getmail-retriever-configuration
-Objekt, mit dem getmail eingerichtet
wird, um E-Mails von der „guix-commits“-Mailing-Liste zu beziehen.
extra-options
(Vorgabe: ’())Zusätzliche Befehlszeilenoptionen für guix-data-service
.
extra-process-jobs-options
(Vorgabe: ’())Zusätzliche Befehlszeilenoptionen für guix-data-service-process-jobs
.
Der Guix-Home-Dienst ermöglicht es, von Guix System aus die Persönlichen
Umgebungen eines oder mehrerer Benutzer aufzuspielen (siehe Persönliche Konfiguration für mehr zu Guix Home). Auf diese Weise werden die
Deklarationen der Persönlichen Umgebung der angegebenen Benutzerkonten in
die Systemkonfiguration eingebettet und im Einklang mit dieser zur selben
Zeit ausgerollt, was den Benutzerinnen und Benutzern die Mühe erspart,
jeweils selbst guix home reconfigure
auszulösen.
Diensttyp für den Guix-Home-Dienst. Sein Wert muss eine Liste von Listen aus jeweils dem Benutzerkonto und der zugehörigen Persönlichen Umgebung sein. In jedem solchen Paar wird das Benutzerkonto als Zeichenkette angegeben, die den Schlüssel angibt, für welchen Benutzer die Umgebung aufgespielt wird, und der Wert ist die Konfiguration der Persönlichen Umgebung.
(use-modules (gnu home)) (define my-home (home-environment …)) (operating-system (services (append (list (service guix-home-service-type `(("alice" ,my-home)))) %base-services)))
Dieser Dienst kann durch andere Dienste mit weiteren Persönlichen Umgebungen erweitert werden, wie in diesem Beispiel:
(simple-service 'my-extra-home guix-home-service-type `(("bob" ,my-extra-home))))
Der Nar Herder ist ein Werkzeug zum Umgang mit einer Menge von Nars.
Ein Diensttyp für den Guix-Datendienst. Sein Wert muss ein
nar-herder-configuration
-Objekt sein. Der Dienst kann optional den
getmail-Dienst erweitern und die guix-commits-Mailing-Liste benutzen, um bei
Änderungen am Guix-Git-Repository auf dem Laufenden zu bleiben.
Der Datentyp, der die Konfiguration des Guix-Datendienstes repräsentiert.
package
(Vorgabe: nar-herder
)Das zu verwendende Nar-Herder-Paket.
user
(Vorgabe: "nar-herder"
)Das Systembenutzerkonto, mit dem der Dienst ausgeführt wird.
group
(Vorgabe: "nar-herder"
)Die Systembenutzergruppe, mit der der Dienst ausgeführt wird.
port
(Vorgabe: 8734
)Der Port, an den der Server gebunden wird.
host
(Vorgabe: "127.0.0.1"
)Rechnername oder Netzwerkschnittstelle, an die der Server gebunden wird.
mirror
(Vorgabe: #f
)Optional die URL der anderen Nar-Herder-Instanz, wenn diese gespiegelt werden soll. Das bedeutet, die hiesige Nar-Herder-Instanz wird die Datenbank von dort herunterladen und auf dem aktuellen Stand halten.
database
(Vorgabe: "/var/lib/nar-herder/nar_herder.db"
)Wo die Datenbank gespeichert wird. Wenn die hiesige Nar-Herder-Instanz eine von anderswo spiegelt, wird die Datenbank von dort heruntergeladen, wenn noch keine existiert. Wenn keine andere Nar-Herder-Instanz gespiegelt wird, wird eine leere Datenbank angelegt.
database-dump
(Vorgabe: "/var/lib/nar-herder/nar_herder_dump.db"
)Der Ort für das Datenbank-Dump. Es wird erzeugt und regelmäßig aktualisiert, indem eine Kopie der Datenbank gemacht wird. Es handelt sich um die Version der Datenbank, die zum Herunterladen angeboten wird.
storage
(Vorgabe: #f
)Optional der Ort, wo Nars gespeichert werden.
storage-limit
(Vorgabe: "none"
)Wie viele Bytes die am Speicherort hinterlegten Nars höchstens einnehmen. Wenn „none“ angegeben wird, gibt es keine Begrenzung.
Wenn am Speicherort mehr hinterlegt ist als hier angegeben ist, werden Nars
gemäß storage-nar-removal-criteria
gelöscht.
storage-nar-removal-criteria
(Vorgabe: '()
)Nach welchen Kriterien Nars aus dem Speicherort gelöscht werden. Sie werden
in Verbindung mit storage-limit
angewandt.
Wenn die Größe am Speicherort storage-limit
überschreitet, werden
Nars gemäß der hier angegebenen Löschkriterien überprüft und, wenn irgendein
Kriterium erfüllt wird, gelöscht. Das geht so weiter, bis die vom
Speicherort eingenommene Größe unterhalb von storage-limit
liegt.
Jedes Kriterium wird in Form einer Zeichenkette, dann einem Gleichheitszeichen, dann noch einer Zeichenkette festgelegt. Derzeit wird nur ein Kriterium unterstützt, nämlich ob ein Nar schon auf einer anderen Nar-Herder-Instanz vorliegt.
ttl
(Vorgabe: #f
)Cache-Control
-HTTP-Kopfzeilen erzeugen, die eine Time-to-live (TTL)
von ttl signalisieren. Für ttl muss eine Dauer (mit dem
Anfangsbuchstaben der Maßeinheit der Dauer im Englischen) angegeben werden:
5d
bedeutet 5 Tage, 1m
bedeutet 1 Monat und so weiter.
Das ermöglicht es Guix, Substitutinformationen ttl lang zwischenzuspeichern.
new-ttl
(Vorgabe: #f
)If specified, this will override the ttl
setting when used for the
Cache-Control
headers, but this value will be used when scheduling
the removal of nars.
Use this setting when the TTL is being reduced to avoid removing nars while clients still have cached narinfos.
negative-ttl
(Vorgabe: #f
)Eben solche Cache-Control
-HTTP-Kopfzeilen für erfolglose (negative)
Suchen erzeugen, um eine Time-to-live (TTL) zu signalisieren, wenn
Store-Objekte fehlen und mit dem HTTP-Status-Code 404 geantwortet wird. Nach
Vorgabe wird für negative Antworten keine TTL signalisiert.
log-level
(Vorgabe: 'DEBUG
)Die Protokollstufe, etwa 'INFO
, um nicht einzelne Anfragen zu
protokollieren.
cached-compressions
(Vorgabe: '()
)Aktiviert das Befüllen eines Zwischenspeichers für Nars mit anderen
Kompressionsmethoden als bei den gespeicherten Nars. Geben Sie dazu eine
Liste von
nar-herder-cached-compression-configuration
-Verbundsobjekten an.
min-uses
(Vorgabe: 3
)Wenn cached-compressions aktiviert sind, werden Nars zwischengespeichert, sobald die hier genannte Anzahl von Anfragen nach dem Nar eingegangen ist.
workers
(Vorgabe: 2
)Wie viele zwischengespeicherte Nars auf einmal erzeugt werden.
nar-source
(Vorgabe: #f
)Woher Nars bezogen werden, um zwischengespeicherte komprimierte Nars zu berechnen. Für den Vorgabewert wird der Speicherort benutzt.
extra-environment-variables
(Vorgabe: '()
)Zusätzliche Umgebungsvariable, die mit dem Shepherd-Dienst festgelegt werden.
Der Datentyp repräsentiert die Konfiguration für zwischengespeicherte komprimierte Nars.
type
Welche Kompressionsmethode benutzt wird, z.B. 'zstd
.
workers
(Vorgabe: #f
)Das zu benutzende Kompressionsniveau.
directory
(Vorgabe: #f
)An welchem Ort zwischengespeicherte Nars abgelegt werden. Wenn nichts angegeben wird, dann werden sie in /var/cache/nar-herder/nar/type gespeichert.
directory-max-size
(Vorgabe: #f
)Die Maximalgröße in Bytes für dieses Verzeichnis.
unused-removal-duration
(Vorgabe: #f
)If a cached nar isn’t used for unused-removal-duration
, it will be
scheduled for removal.
unused-removal-duration muss eine Dauer angeben: 5d
bedeutet 5
Tage, 1m
bedeutet 1 Monat und so weiter.
ttl
(Vorgabe: #f
)If specified this overrides the ttl
used for narinfos when this
cached compression is available.
new-ttl
(Vorgabe: #f
)As with the new-ttl
option for nar-herder-configuration
, this
value will override the ttl
when used for narinfo requests.
Nächste: Linux-Dienste, Vorige: PAM-Einbindedienst, Nach oben: Dienste [Inhalt][Index]