Next: , Previous: , Up: Servicios   [Contents][Index]


11.10.34 Servicios de 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")

Usuaria del sistema que ejecuta el servicio.

group (default: "bffe")

Grupo del sistema que ejecuta el servicio.

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 (default: ’())

Extra environment variables to set via the shepherd service.

Coordinador de construcciones de Guix

El coordinador de construcciones de Guix ayuda en la distribución de las construcciones de derivaciones entre máquinas que ejecuten un agente. El daemon de construcción se usa todavía para la construcción de las derivaciones, pero el coordinador de construcciones de Guix gestiona su lanzamiento y trabaja con los resultados.

The Guix Build Coordinator consists of one coordinator, and one or more connected agent processes. The coordinator process handles clients submitting builds, and allocating builds to agents. The agent processes talk to a build daemon to actually perform the builds, then send the results back to the coordinator.

Existe un guión para ejecutar el componente de coordinación del servicio de coordinación de construcciones de Guix, pero el servicio de Guix utiliza un guión Guile personalizado en vez de este, para mejorar la integración con las expresiones-G usadas en la configuración.

Variable: guix-build-coordinator-service-type

Tipo de servicio para la coordinación de construcciones de Guix. Su valor debe ser un objeto guix-build-coordinator-configuration.

Tipo de datos: guix-build-coordinator-configuration

Tipo de datos que representa la configuración del servicio de coordinación de construcciones de Guix.

package (predeterminado: guix-build-coordinator)

El paquete del servicio de coordinación de construcciones de Guix usado.

user (predeterminado: "guix-build-coordinator")

Usuaria del sistema que ejecuta el servicio.

group (predeterminado: "guix-build-coordinator")

Grupo del sistema que ejecuta el servicio.

database-uri-string (predeterminada: "sqlite:///var/lib/guix-build-coordinator/guix_build_coordinator.db")

URI usada para la conexión a la base de datos.

agent-communication-uri (predeterminada: "http://0.0.0.0:8745")

La URI que describe cómo escuchar peticiones de los procesos agentes.

client-communication-uri (predeterminada: "http://127.0.0.1:8746")

La URI que describe cómo escuchar peticiones de los clientes. La interfaz para los clientes permite la emisión de construcciones y no implementa identificación actualmente, por lo que tenga cuidado cuando configure este valor.

allocation-strategy (predeterminada: #~basic-build-allocation-strategy)

Una expresión-G para la estrategia de reservas usada. Es un procedimiento que recibe la ruta del almacén como un parámetro y rellena la planificación de reservas en la base de datos.

hooks (predeterminada: ’())

Una lista asociativa de procedimientos de extensión49. Proporcionan una forma de ejecutar código arbitrario tras ciertos eventos, como inicio del procesamiento del resultado de una construcción.

parallel-hooks (default: ’())

Hooks can be configured to run in parallel. This parameter is an association list of hooks to do in parallel, where the key is the symbol for the hook and the value is the number of threads to run.

guile (predeterminado: guile-3.0-latest)

El paquete Guile con el que se ejecuta la coordinación de construcciones de Guix.

extra-environment-variables (default: ’())

Extra environment variables to set via the shepherd service.

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

Tipo de servicio para un agente del coordinador de construcciones de Guix. Su valor debe ser un objeto guix-build-coordinator-agent-configuration.

Tipo de datos: guix-build-coordinator-agent-configuration

Tipo de datos que representa la configuración de un agente del coordinador de construcciones de Guix.

package (default: guix-build-coordinator/agent-only)

El paquete del servicio de coordinación de construcciones de Guix usado.

user (predeterminado: "guix-build-coordinator-agent")

Usuaria del sistema que ejecuta el servicio.

coordinator (predeterminado: "http://localhost:8745")

URI usada para la conexión al nodo coordinador.

authentication

Record describing how this agent should authenticate with the coordinator. Possible record types are described below.

systems (predeterminado: #f)

Los sistemas para los cuales este agente debe obtener construcciones. Los procesos agente usan el sistema sobre el que se ejecuten como valor predeterminado.

max-parallel-builds (default: #f)

El número de construcciones que se ejecutan en paralelo.

max-parallel-uploads (default: #f)

The number of uploads to perform in parallel.

max-allocated-builds (default: #f)

The maximum number of builds this agent can be allocated.

max-1min-load-average (default: #f)

Load average value to look at when considering starting new builds, if the 1 minute load average exceeds this value, the agent will wait before starting new builds.

This will be unspecified if the value is #f, and the agent will use the number of cores reported by the system as the max 1 minute load average.

derivation-substitute-urls (default: #f)

Identificadores URL a partir de los cuales se intentará obtener sustituciones para derivaciones, si las derivaciones no están ya disponibles.

non-derivation-substitute-urls (default: #f)

Identificadores URL a partir de los cuales se intentará obtener sustituciones para las entradas de las construcciones, si los elementos de entrada del almacén no están ya disponibles.

extra-options (predeterminadas: ’())

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

Data Type: guix-build-coordinator-agent-password-auth

Data type representing an agent authenticating with a coordinator via a UUID and password.

uuid

El identificador UUID del agente. Debe ser generado por el proceso de coordinación, almacenarse en la base de datos de coordinación, y usarse por parte del agente en cuestión.

password

The password to use when connecting to the coordinator.

Data Type: guix-build-coordinator-agent-password-file-auth

Data type representing an agent authenticating with a coordinator via a UUID and password read from a file.

uuid

El identificador UUID del agente. Debe ser generado por el proceso de coordinación, almacenarse en la base de datos de coordinación, y usarse por parte del agente en cuestión.

password-file

Un archivo que contiene la contraseña usada para la conexión a la máquina coordinadora.

Data Type: guix-build-coordinator-agent-dynamic-auth

Data type representing an agent authenticating with a coordinator via a dynamic auth token and agent name.

agent-name

Name of an agent, this is used to match up to an existing entry in the database if there is one. When no existing entry is found, a new entry is automatically added.

token

Dynamic auth token, this is created and stored in the coordinator database, and is used by the agent to authenticate.

Data Type: guix-build-coordinator-agent-dynamic-auth-with-file

Data type representing an agent authenticating with a coordinator via a dynamic auth token read from a file and agent name.

agent-name

Name of an agent, this is used to match up to an existing entry in the database if there is one. When no existing entry is found, a new entry is automatically added.

token-file

File containing the dynamic auth token, this is created and stored in the coordinator database, and is used by the agent to authenticate.

Servicio de datos de Guix

El servicio de datos de Guix procesa, almacena y proporciona datos acerca de GNU Guix. Esto incluye información sobre paquetes, derivaciones y avisos de “lint”.

Los datos se almacenan en una base de datos PostgreSQL, y están disponibles a través de una interfaz web.

Variable: guix-data-service-type

Tipo de servicio para el servicio de datos de Guix. Su valor debe ser un objeto guix-data-service-configuration. El servicio opcionalmente extiende el servicio getmail, puesto que la lista de correo guix-commits se usa para conocer los cambios del repositorio git de Guix.

Tipo de datos: guix-data-service-configuration

Tipo de datos que representa la configuración del servicio de datos de Guix.

package (predeterminado: guix-data-service)

El paquete del servicio de datos de Guix usado.

user (usuaria: "guix-data-service")

Usuaria del sistema que ejecuta el servicio.

group (predeterminado: "guix-data-service")

Grupo del sistema que ejecuta el servicio.

port (predeterminado: 8765)

El puerto al que se asociará el servicio web.

host (predeterminada: "127.0.0.1")

El nombre de máquina al que se asociará el servicio web.

getmail-idle-mailboxes (predeterminado: #f)

Si se proporciona un valor, es la lista de bandejas de correo en las cuales la configuración debe indicar su lectura al servicio getmail.

commits-getmail-retriever-configuration (predeterminado: #f)

Si se proporciona un valor, es el objeto getmail-retriever-configuration con el que se configura getmail para obtener recibir el correo de la lista guix-commits.

extra-options (predeterminadas: ’())

Opciones de línea de órdenes adicionales para guix-data-service.

extra-process-jobs-options (predeterminadas: ’())

Opciones de línea de órdenes adicionales para 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 (see Home Configuration, 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

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

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

Tipo de datos que representa la configuración del servicio de datos de Guix.

package (default: nar-herder)

The Nar Herder package to use.

user (default: "nar-herder")

Usuaria del sistema que ejecuta el servicio.

group (default: "nar-herder")

Grupo del sistema que ejecuta el servicio.

port (default: 8734)

Número de puerto usado por el servidor.

host (predeterminada: "127.0.0.1")

The host to bind the server to.

mirror (predeterminado: #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 (predeterminado: #f)

Produce cabeceras HTTP Cache-Control que anuncian un tiempo-de-vida (TTL) de ttl. ttl debe indicar una duración: 5d significa 5 días, 1m significa un mes, etc.

This allows the user’s Guix to keep substitute information in cache for 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 (default: #f)

Similarly produce Cache-Control HTTP headers to advertise the time-to-live (TTL) of negative lookups—missing store items, for which the HTTP 404 code is returned. By default, no negative TTL is advertised.

log-level (default: 'DEBUG)

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

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 (default: '())

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 (predeterminado: #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 (predeterminado: #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.


Footnotes

(49)

NdT: “hook” en inglés tiene el sentido del gancho donde se “enganchan” las extensiones.


Next: Servicios de Linux, Previous: Servicio PAM Mount, Up: Servicios   [Contents][Index]