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


11.10.34 Services Guix

Build Farm Front-End (BFFE)

The Build Farm Front-End assists with building Guix packages in bulk. It’s responsible for submitting builds and displaying the status of the build farm.

Variable :bffe-service-type

Service type for the Build Farm Front-End. Its value must be a bffe-configuration object.

Data Type :bffe-configuration

Data type representing the configuration of the Build Farm Front-End.

package (default: bffe)

The Build Farm Front-End package to use.

user (default: "bffe")

L’utilisateur qui lance le service.

group (default: "bffe")

Le groupe système qui lance le service.

arguments

A list of arguments to the Build Farm Front-End. These are passed to the run-bffe-service procedure when starting the service.

For example, the following value directs the Build Farm Front-End to submit builds for derivations available from data.guix.gnu.org to the Build Coordinator instance assumed to be running on the same machine.

(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 (par défaut : ’())

Extra environment variables to set via the shepherd service.

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 :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.

parallel-hooks (par défaut : ’())

Les crochets peuvent être configurés pour être lancés en parallèle. Ce paramètre est une liste d’association de crochets à lancer en parallèle, où la clé est le symbole pour le crochet et la valeur est le nombre de threads à lancer.

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

Le paquet Guile à utiliser pour lancer Guix Build Coordinator.

extra-environment-variables (par défaut : ’())

Extra environment variables to set via the shepherd service.

Variable :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 (default: #f)

Le nombre de constructions qui peuvent tourner simultanément.

max-parallel-uploads (default: #f)

The number of uploads to perform in parallel.

max-allocated-builds (par défaut : #f)

Le nombre maximum de constructions que cette agent peut allouer.

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.

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

Extra command line options for guix-build-coordinator-agent.

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.

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 :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.

Guix Home Service

The Guix Home service is a way to let Guix System deploy the home environment of one or more users (voir Configuration du dossier personnel, for more on Guix Home). That way, the system configuration embeds declarations of the home environment of those users and can be used to deploy everything consistently at once, saving users the need to run guix home reconfigure independently.

Variable :guix-home-service-type

Service type for the Guix Home service. Its value must be a list of lists containing user and home environment pairs. The key of each pair is a string representing the user to deploy the configuration under and the value is a home-environment configuration.

(use-modules (gnu home))

(define my-home
  (home-environment
    ))

(operating-system
  (services (append (list (service guix-home-service-type
                                   `(("alice" ,my-home))))
                    %base-services)))

This service can be extended by other services to add additional home environments, as in this example:

(simple-service 'my-extra-home guix-home-service-type
                `(("bob" ,my-extra-home))))

Nar Herder

Nar Herder est un utilitaire pour gérer une collection de nars.

Variable :nar-herder-type

Le type de service pour le Guix Data Service. Sa valeur doit être un objet nar-herder-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 :nar-herder-configuration

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

package (par défaut : nar-herder)

Le paquet Nar Herder à utiliser.

user (par défaut : "nar-herder")

L’utilisateur qui lance le service.

group (par défaut : "nar-herder")

Le groupe système qui lance le service.

port (par défaut : 8734)

Le pour sur lequel lier le serveur.

host (par défaut : "127.0.0.1")

L’hôte sur lequel lier le serveur.

mirror (par défaut : #f)

URL facultative de l’autre instance de Nar Herder qui doit être répliquée. Cela signifie que cette instance de Nar Herder téléchargera sa base de données et la gardera à jour.

database (par défaut : "/var/lib/nar-herder/nar_herder.db")

Emplacement de la base de données. Si cette instance de Nar Herder en réplique une autre, la base de données sera téléchargée si elle n’existe pas. Si cette instance de Nar Herder n’en réplique pas une autre, une base de données vide sera créée.

database-dump (par défaut : "/var/lib/nar-herder/nar_herder_dump.db")

Emplacement de la décharge de la base de données. Elle est crée et régulièrement mise à jour en prenant une copie de la base de données. C’est la version de la base de données qui est disponible au téléchargement.

storage (par défaut : #f)

Emplacement facultatif dans lequel stocker les nars.

storage-limit (par défaut : "none")

Limite en octets pour les nars stockés dans l’emplacement de stockage. Cela peut valoir « none » pour qu’il n’y ait pas de limite.

Lorsque l’emplacement de stockage dépasse cette taille, les nars sont supprimés en fonction des critères de suppression des nars.

storage-nar-removal-criteria (par défaut : '())

Critères utilisés pour supprimer les nars de l’emplacement de stockage. Ils sont utilisés en plus de la limite de stockage.

Lorsque l’emplacement de stockage dépasse la limite de taille, les nars passeront aux critères de suppression et ceux qui correspondent aux critères seront supprimés. Cela continue jusqu’à ce que l’emplacement de stockage repasse en dessous de la limite de taille.

Chaque critère est spécifié par une chaine, puis un signe égal, puis une autre chaine. Actuellement, seul un critère est pris en charge, vérifier si un nar est stocké sur une autre instance de Nar Herder.

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.

Cela permet au Guix de l’utilisateur ou de l’utilisatrice de garder les informations de substituts en cache pendant ttl.

new-ttl (default: #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 (par défaut : #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 (par défaut : 'DEBUG)

Niveau de journalisation à utiliser, spécifie un niveau de journalisation comme 'INFO pour arrêter de journaliser les requêtes individuelles.

cached-compressions (default: '())

Activate generating cached nars with different compression details from the stored nars. This is a list of nar-herder-cached-compression-configuration records.

min-uses (default: 3)

When cached-compressions are enabled, generate cached nars when at least this number of requests are made for a nar.

workers (default: 2)

Number of cached nars to generate at a time.

nar-source (default: #f)

Location to fetch nars from when computing cached compressions. By default, the storage location will be used.

extra-environment-variables (par défaut : '())

Extra environment variables to set via the shepherd service.

Data Type :nar-herder-cached-compression-configuration

Data type representing the cached compression configuration.

type

Type of compression to use, e.g. 'zstd.

workers (par défaut : #f)

Level of the compression to use.

directory (default: #f)

Location to store the cached nars. If unspecified, they will be stored in /var/cache/nar-herder/nar/TYPE.

directory-max-size (default: #f)

Maximum size in bytes of the directory.

unused-removal-duration (default: #f)

If a cached nar isn’t used for unused-removal-duration, it will be scheduled for removal.

unused-removal-duration must denote a duration: 5d means 5 days, 1m means 1 month, and so on.

ttl (par défaut : #f)

If specified this overrides the ttl used for narinfos when this cached compression is available.

new-ttl (default: #f)

As with the new-ttl option for nar-herder-configuration, this value will override the ttl when used for narinfo requests.


Suivant: Services Linux, Précédent: Service PAM de montage, Monter: Services   [Table des matières][Index]