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


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

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

Le nombre de constructions qui peuvent tourner simultanément.

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.

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

L’identifiant du serveur de construction du service Guix Data qui correspond aux constructions soumises. Fournir ceci accélère la soumission des constructions car les dérivations déjà soumises peuvent être passées avant de demander au coordinateur de les construire.

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

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.

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.

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.


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