Suivant: , Précédent: , Monter: Services   [Table des matières][Index]


12.9.31 Services Guix

Guix Build Coordinator

Le Guix Build Coordinator aide à distribuer la construction de dérivations entre machines sur lesquelles tourne un agent. Le démon de construction est toujours utilisé pour construire les dérivations, mais Guix Build Coordinator gère l’allocation des construction et des résultats.

Le coordinateur des constructions Guix consiste en un coordinateur, et un ou plus processus agents connectés. Le coordinateur gère les clients qui soumettent des constructions, et alloue les constructions aux agents. Les processus agents parlent au démon de construction pour effectuer les constructions, puis envoie les résultats au coordinateur.

Il y a un script pour lancer le composant du coordinateur de Guix Build Coordinator, mais le service Guix utilise un script Guile personnalisé à la place, pour fournir une meilleure intégration avec les G-expressions utilisées dans la configuration.

Variable : Variable Scheme guix-build-coordinator-service-type

Le type de service pour Guix Build Coordinator. Sa valeur doit être un guix-build-coordinator-configuration.

Type de données : guix-build-coordinator-configuration

Le type de données représentant la configuration de Guix Build Coordinator.

package (par défaut : guix-build-coordinator)

Le paquet Guix Build Coordinator à utiliser.

user (par défaut : "guix-build-coordinator")

L’utilisateur qui lance le service.

group (par défaut : "guix-build-coordinator")

Le groupe système qui lance le service.

database-uri-string (par défaut : "sqlite:///var/lib/guix-build-coordinator/guix_build_coordinator.db")

L’URI à utiliser pour la base de données.

agent-communication-uri (par défaut : "http://0.0.0.0:8745")

L’URI décrivant comment écouter les requêtes des processus agents.

client-communication-uri (par défaut : "http://127.0.0.1:8746")

L’URI décrivant comme écouter les requêtes des clients. L’API cliente permet de soumettre des constructions et n’est pas actuellement authentifiée, donc faites attention lors de la configuration de cette valeur.

allocation-strategy (par défaut : #~basic-build-allocation-strategy)

Une G-expression pour la stratégie d’allocation à utiliser. C’est une procédure qui prend le stockage de données en argument et rempli le plan d’allocation dans la base de données.

hooks (par défaut : ’())

Une liste d’association de crochets. Ils fournissent une manière d’exécuter du code arbitraire en fonction d’évènements, comme le traitement des résultats des constructions.

guile (par défaut : guile-3.0-latest)

Le paquet Guile à utiliser pour lancer Guix Build Coordinator.

Variable : Variable Scheme guix-build-coordinator-agent-service-type

Le type de service pour un agent Guix Build Coordinator. Sa valeur doit être un guix-build-coordinator-agent-configuration.

Type de données : guix-build-coordinator-agent-configuration

Type de données représentant la configuration d’un agent Guix Build Coordinator.

package (par défaut : guix-build-coordinator/agent-only)

Le paquet Guix Build Coordinator à utiliser.

user (par défaut : "guix-build-coordinator-agent")

L’utilisateur qui lance le service.

coordinator (par défaut : "http://localhost:8745")

L’URI à utiliser lors de la connexion au coordinateur.

authentification

Enregistrement décrivant comme cet agent devrait s’authentifier avec le coordinateur. Les types d’enregistrement possibles sont décrit plus bas.

systems (par défaut : #f)

Les systèmes pour lesquels cet agent devrait récupérer les constructions. Le processus de l’agent utilisera le système actuel comme valeur par défaut.

max-parallel-builds (par défaut : 1)

Le nombre de constructions qui peuvent tourner simultanément.

max-1min-load-average (par défaut : #f)

Valeur moyenne de charge à vérifier avant de commencer de nouvelles construction. Si la valeur moyenne à une minute dépasse cette valeur, l’agent attendra avant de commencer de nouvelles constructions.

Cela sera non spécifié si la valeur est #f, et l’agent utilisera le nombre de cœurs rapportés par le système comme la moyenne de charge à 1 minute maximale.

derivation-substitute-urls (par défaut : #f)

URL à partir desquelles essayer de récupérer les substituts pour les dérivations, si les dérivation ne sont pas déjà disponibles.

non-derivation-substitute-urls (par défaut : #f)

URL à partir desquelles essayer de chercher les substituts pour les entrées des constructions, si les éléments du dépôt des entrées ne sont pas déjà disponibles.

Type de données : guix-build-coordinator-agent-password-auth

Type de données représentant un moyen d’authentification avec un coordinateur pour les agents, via un UUID et un mot de passe.

uuid

L’UUID de l’agent. Il devrait être généré par le processus du coordinateur, stocké dans la base du coordinateur et utilisé par l’agent prévu.

password

Le mot de passe à utiliser lors de la connexion au coordinateur.

Type de données : guix-build-coordinator-agent-password-file-auth

Type de données représentant un moyen d’authentification avec un coordinateur via un UUID et un mot de passe lu depuis un fichier.

uuid

L’UUID de l’agent. Il devrait être généré par le processus du coordinateur, stocké dans la base du coordinateur et utilisé par l’agent prévu.

password-file

Un fichier contenant le mot de passe à utiliser pour la connexion avec le coordinateur.

Type de données : guix-build-coordinator-agent-dynamic-auth

Type de données représentant un moyen d’authentification à un coordinateur via un jeton d’authentification dynamique et le nom de l’agent.

agent-name

Nom d’un agent, c’est utilisé pour le faire correspondre à une entrée existante dans la base de données s’il existe. Lorsqu’aucune entrée n’est trouvée, une nouvelle entrée est ajoutée automatiquement.

token

Jeton d’authentification dynamique, créé et stocké dans la base de données du coordinateur, et utilisé par l’agent pour s’authentifier.

Type de données : guix-build-coordinator-agent-dynamic-auth-with-file

Type de données représentant une méthode d’authentification à un coordinateur via un jeton d’authentification dynamique lu depuis un fichier et un nom d’agent.

agent-name

Nom d’un agent, c’est utilisé pour le faire correspondre à une entrée existante dans la base de données s’il existe. Lorsqu’aucune entrée n’est trouvée, une nouvelle entrée est ajoutée automatiquement.

token-file

Fichier contenant le jeton d’authentification dynamique, créé et stocké dans la base de données du coordinateur, et utilisé par l’agent pour s’authentifier.

Le paquet Guix Build Coordinator contient un script pour demander à une instance de Guix Data Service les dérivations à construire, puis pour soumettre les constructions de ces dérivations au coordinateur. Le type de service ci-dessous vous aide à lancer ce script. C’est un outil supplémentaire qui peut être utile lors de la construction de dérivations contenues dans une instance du Guix Data Service.

Variable : Variable Scheme guix-build-coordinator-queue-builds-service-type

Type de service pour le script guix-build-coordinator-queue-builds-from-guix-data-service. Sa valeur doit être un objet guix-build-coordinator-queue-builds-configuration.

Type de données : guix-build-coordinator-queue-builds-configuration

Le type de données représentant les options du script qui soumet les constructions à partir du guix data service.

package (par défaut : guix-build-coordinator)

Le paquet Guix Build Coordinator à utiliser.

user (par défaut : "guix-build-coordinator-queue-builds")

L’utilisateur qui lance le service.

coordinator (par défaut : "http://localhost:8746")

L’URI à utiliser lors de la connexion au coordinateur.

systems (par défaut : #f)

Les systèmes pour lesquels récupérer des dérivations à construire.

systems-and-targets (par défaut : #f)

Une liste d’association de paires de systèmes et de cibles pour lesquelles chercher des dérivations à construire.

guix-data-service (par défaut : "https://data.guix.gnu.org")

L’instance du Guix Data Service à laquelle demander les dérivations à construire.

guix-data-service-build-server-id (default: #f)

The Guix Data Service build server ID corresponding to the builds being submitted. Providing this speeds up the submitting of builds as derivations that have already been submitted can be skipped before asking the coordinator to build them.

processed-commits-file (par défaut : "/var/cache/guix-build-coordinator-queue-builds/processed-commits")

Un fichier qui enregistre les commits qui ont été traités, pour éviter de les traiter de nouveau inutilement si le service est redémarré.

Guix Data Service

Le Guix Data Service traite, stocke et fournit des données à propos de GNU Guix. Cela comprend des informations sur les paquets, les dérivations et les messages d’avertissement de formatage.

Les données sont stockées dans une base PostgreSQL, et sont disponibles à travers une interface web.

Variable : Variable Scheme guix-data-service-type

Le type de service pour le Guix Data Service. Sa valeur doit être un objet guix-data-service-configuration. Le service étend éventuellement le service getmail, car la liste de diffusion guix-commits est utilisée pour récupérer les changement dans le dépôt git de Guix.

Type de données : guix-data-service-configuration

Le type de données représentant la configuration du Guix Data Service.

package (par défaut : guix-data-service)

Le paquet Guix Data Service à utiliser.

user (par défaut : "guix-data-service")

L’utilisateur qui lance le service.

group (par défaut : "guix-data-service")

Le groupe système qui lance le service.

port (par défaut : 8765)

Le port sur lequel lier le service web.

host (par défaut : "127.0.0.1")

L’hôte sur lequel lier le service web.

getmail-idle-mailboxes (par défaut : #f)

Si une valeur est indiquée, c’est la liste des boites de courriel que le service getmail récupère.

commits-getmail-retriever-configuration (par défaut : #f)

Si la valeur est indiquée, c’est l’objet getmail-retriever-configuration avec lequel configurer getmail pour récupérer les courriels à part de la liste de diffusion guix-commits.

extra-options (par défaut : ’())

Liste d’options supplémentaires de la ligne de commande pour guix-data-service.

extra-process-jobs-options (par défaut : ’())

Liste d’options supplémentaires de la ligne de commande pour guix-data-service-process-jobs.

Nar Herder

The Nar Herder is a utility for managing a collection of nars.

Variable : Scheme Variable nar-herder-type

Service type for the Guix Data Service. Its value must be a nar-herder-configuration object. The service optionally extends the getmail service, as the guix-commits mailing list is used to find out about changes in the Guix git repository.

Data Type : nar-herder-configuration

Le type de données représentant la configuration du Guix Data Service.

package (default: nar-herder)

The Nar Herder package to use.

user (default: "nar-herder")

L’utilisateur qui lance le service.

group (default: "nar-herder")

Le groupe système qui lance le service.

port (default: 8734)

Le pour sur lequel lier le serveur.

host (par défaut : "127.0.0.1")

The host to bind the server to.

mirror (par défaut : #f)

Optional URL of the other Nar Herder instance which should be mirrored. This means that this Nar Herder instance will download it’s database, and keep it up to date.

database (default: "/var/lib/nar-herder/nar_herder.db")

Location for the database. If this Nar Herder instance is mirroring another, the database will be downloaded if it doesn’t exist. If this Nar Herder instance isn’t mirroring another, an empty database will be created.

database-dump (default: "/var/lib/nar-herder/nar_herder_dump.db")

Location of the database dump. This is created and regularly updated by taking a copy of the database. This is the version of the database that is available to download.

storage (default: #f)

Optional location in which to store nars.

storage-limit (default: "none")

Limit in bytes for the nars stored in the storage location. This can also be set to “none” so that there is no limit.

When the storage location exceeds this size, nars are removed according to the nar removal criteria.

storage-nar-removal-criteria (default: '())

Criteria used to remove nars from the storage location. These are used in conjunction with the storage limit.

When the storage location exceeds the storage limit size, nars will be checked against the nar removal criteria and if any of the criteria match, they will be removed. This will continue until the storage location is below the storage limit size.

Each criteria is specified by a string, then an equals sign, then another string. Currently, only one criteria is supported, checking if a nar is stored on another Nar Herder instance.

ttl (par défaut : #f)

Produit des en-têtes HTTP Cache-Control qui annoncent une durée de vie (TTL) de ttl. ttl peut dénoter une durée : 5d signifie 5 jours, 1m signifie un mois, etc.

This allows the user’s Guix to keep substitute information in cache for ttl.

negative-ttl (default: #f)

Produit de la même manière des en-têtes HTTP Cache-Control pour annoncer la durée de vie (TLL) d’une recherche négative — des entrées du dépôt manquantes, pour lesquelles une erreur 404 est renvoyée. Par défaut, aucun TTL négatif n’est annoncé.

log-level (default: 'DEBUG)

Log level to use, specify a log level like 'INFO to stop logging individual requests.


Suivant: , Précédent: , Monter: Services   [Table des matières][Index]