summaryrefslogtreecommitdiff
path: root/gnu/services
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2025-05-01 14:24:56 +0900
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2025-05-02 09:53:54 +0900
commit74325f91c9d0f01c410b89d445bf31948b4f27d7 (patch)
tree1f9a31d6b5b6a1b73bf17aeb5d2dfdbbcc97500d /gnu/services
parent266a713ae3ac742258ff11b6edd966288177d9e9 (diff)
services: Normalize and improve libvirt-configuration documentation.
* gnu/services/virtualization.scm (libvirt-configuration): Fix typos and punctuation, and decorate with more Texinfo adornments. Remove extraneous text. Convert enumerations to sentences re-generating the Texinfo documentation with configuration->documentation doesn't require fixing these by hand after (the text is re-flowed, breaking enumerations). Mention the use of 'log-filters' is preferable to 'log-level', as commented in the defaut libvirt.conf template. * doc/guix.texi (Virtualization Services): Re-generate. Change-Id: Icc2abe21a787b4bb6ac3b35a95f6aaaf3bbda9aa
Diffstat (limited to 'gnu/services')
-rw-r--r--gnu/services/virtualization.scm365
1 files changed, 148 insertions, 217 deletions
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index 0836fe7d452..b1e7fbb68bd 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -217,7 +217,7 @@
"Libvirt package.")
(qemu
(file-like qemu)
- "Qemu package.")
+ "The QEMU package to use.")
(firmwares
(list-of-file-likes (list ovmf-x86-64))
"List of UEFI/BIOS firmware packages to make available. Each firmware
@@ -227,313 +227,244 @@ firmware metadata file."
(listen-tls?
(boolean #t)
"Flag listening for secure TLS connections on the public TCP/IP port.
-must set @code{listen} for this to have any effect.
-
-It is necessary to setup a CA and issue server certificates before
-using this capability.")
+must set @code{listen} for this to have any effect. It is necessary to setup
+a CA and issue server certificates before using this capability.")
(listen-tcp?
(boolean #f)
"Listen for unencrypted TCP connections on the public TCP/IP port.
-must set @code{listen} for this to have any effect.
-
-Using the TCP socket requires SASL authentication by default. Only
-SASL mechanisms which support data encryption are allowed. This is
-DIGEST_MD5 and GSSAPI (Kerberos5)")
+must set @code{listen} for this to have any effect. Using the TCP socket
+requires SASL authentication by default. Only SASL mechanisms which support
+data encryption are allowed. This is DIGEST_MD5 and GSSAPI (Kerberos5).")
(tls-port
(string "16514")
"Port for accepting secure TLS connections This can be a port number,
-or service name")
+or service name.")
(tcp-port
(string "16509")
"Port for accepting insecure TCP connections This can be a port number,
-or service name")
+or service name.")
(listen-addr
(string "0.0.0.0")
"IP address or hostname used for client connections.")
(mdns-adv?
(boolean #f)
- "Flag toggling mDNS advertisement of the libvirt service.
-
-Alternatively can disable for all services on a host by
-stopping the Avahi daemon.")
+ "Flag toggling mDNS advertisement of the libvirt service.")
(mdns-name
(string (string-append "Virtualization Host " (gethostname)))
- "Default mDNS advertisement name. This must be unique on the
+ "Default mDNS advertisement name. This must be unique on the
immediate broadcast network.")
(unix-sock-group
(string "libvirt")
- "UNIX domain socket group ownership. This can be used to
-allow a 'trusted' set of users access to management capabilities
-without becoming root.")
+ "UNIX domain socket group ownership. This can be used to allow a trusted
+set of users access to management capabilities without becoming root.")
(unix-sock-ro-perms
(string "0777")
- "UNIX socket permissions for the R/O socket. This is used
-for monitoring VM status only.")
+ "UNIX socket permissions for the R/O socket. This is used for monitoring
+VM status only.")
(unix-sock-rw-perms
(string "0770")
- "UNIX socket permissions for the R/W socket. Default allows
-only root. If PolicyKit is enabled on the socket, the default
-will change to allow everyone (eg, 0777)")
+ "UNIX socket permissions for the R/W socket. Default allows only root. If
+PolicyKit is enabled on the socket, the default will change to allow
+everyone (e.g., @code{\"0777\"}).")
(unix-sock-admin-perms
(string "0777")
- "UNIX socket permissions for the admin socket. Default allows
-only owner (root), do not change it unless you are sure to whom
-you are exposing the access to.")
+ "UNIX socket permissions for the admin socket. Default allows only
+owner (root), do not change it unless you are sure to whom you are exposing
+the access to.")
(unix-sock-dir
(string "/var/run/libvirt")
"The directory in which sockets will be found/created.")
(auth-unix-ro
(string "polkit")
- "Authentication scheme for UNIX read-only sockets. By default
-socket permissions allow anyone to connect")
+ "Authentication scheme for UNIX read-only sockets. By default socket
+permissions allow anyone to connect.")
(auth-unix-rw
(string "polkit")
- "Authentication scheme for UNIX read-write sockets. By default
-socket permissions only allow root. If PolicyKit support was compiled
-into libvirt, the default will be to use 'polkit' auth.")
+ "Authentication scheme for UNIX read-write sockets. By default socket
+permissions only allow root. If PolicyKit support was compiled into libvirt,
+the default will be to use 'polkit' auth.")
(auth-tcp
(string "sasl")
- "Authentication scheme for TCP sockets. If you don't enable SASL,
-then all TCP traffic is cleartext. Don't do this outside of a dev/test
-scenario.")
+ "Authentication scheme for TCP sockets. If you don't enable SASL,
+then all TCP traffic is cleartext. Don't do this outside of a
+development/test scenario.")
(auth-tls
(string "none")
- "Authentication scheme for TLS sockets. TLS sockets already have
-encryption provided by the TLS layer, and limited authentication is
-done by certificates.
-
-It is possible to make use of any SASL authentication mechanism as
-well, by using 'sasl' for this option")
+ "Authentication scheme for TLS sockets. TLS sockets already have
+encryption provided by the TLS layer, and limited authentication is done by
+certificates. It is possible to make use of any SASL authentication mechanism
+as well, by using @code{\"sasl\"} for this option")
(access-drivers
(optional-list '())
- "API access control scheme.
-
-By default an authenticated user is allowed access to all APIs. Access
-drivers can place restrictions on this.")
+ "API access control scheme. By default an authenticated user is allowed
+access to all APIs. Access drivers can place restrictions on this.")
(key-file
(string "")
- "Server key file path. If set to an empty string, then no private key
-is loaded.")
+ "Server key file path. If set to an empty string, then no private key is
+loaded.")
(cert-file
(string "")
- "Server key file path. If set to an empty string, then no certificate
-is loaded.")
+ "Server key file path. If set to an empty string, then no certificate is
+loaded.")
(ca-file
(string "")
- "Server key file path. If set to an empty string, then no CA certificate
+ "Server key file path. If set to an empty string, then no CA certificate
is loaded.")
(crl-file
(string "")
- "Certificate revocation list path. If set to an empty string, then no
-CRL is loaded.")
+ "Certificate revocation list path. If set to an empty string, then no CRL
+is loaded.")
(tls-no-sanity-cert
(boolean #f)
- "Disable verification of our own server certificates.
-
-When libvirtd starts it performs some sanity checks against its own
+ "Disable verification of our own server certificates. When
+@command{libvirtd} starts it performs some sanity checks against its own
certificates.")
(tls-no-verify-cert
(boolean #f)
- "Disable verification of client certificates.
-
-Client certificate verification is the primary authentication mechanism.
-Any client which does not present a certificate signed by the CA
-will be rejected.")
+ "Disable verification of client certificates. Client certificate
+verification is the primary authentication mechanism. Any client which does
+not present a certificate signed by the CA will be rejected.")
(tls-allowed-dn-list
(optional-list '())
"Whitelist of allowed x509 Distinguished Name.")
(sasl-allowed-usernames
(optional-list '())
- "Whitelist of allowed SASL usernames. The format for username
-depends on the SASL authentication mechanism.")
+ "Whitelist of allowed SASL usernames. The format for username depends on
+the SASL authentication mechanism.")
(tls-priority
(string "NORMAL")
- "Override the compile time default TLS priority string. The
-default is usually \"NORMAL\" unless overridden at build time.
-Only set this is it is desired for libvirt to deviate from
-the global default settings.")
+ "Override the compile time default TLS priority string. The default is
+usually \"NORMAL\" unless overridden at build time. Only set this if it is
+desired for libvirt to deviate from the global default settings.")
(max-clients
(integer 5000)
- "Maximum number of concurrent client connections to allow
-over all sockets combined.")
+ "Maximum number of concurrent client connections to allow over all sockets
+combined.")
(max-queued-clients
(integer 1000)
- "Maximum length of queue of connections waiting to be
-accepted by the daemon. Note, that some protocols supporting
-retransmission may obey this so that a later reattempt at
-connection succeeds.")
+ "Maximum length of queue of connections waiting to be accepted by the
+daemon. Note, that some protocols supporting re-transmission may obey this so
+that a later reattempt at connection succeeds.")
(max-anonymous-clients
(integer 20)
- "Maximum length of queue of accepted but not yet authenticated
-clients. Set this to zero to turn this feature off")
+ "Maximum length of queue of accepted but not yet authenticated clients.
+Set this to zero to turn this feature off.")
(min-workers
(integer 5)
"Number of workers to start up initially.")
(max-workers
(integer 20)
- "Maximum number of worker threads.
-
-If the number of active clients exceeds @code{min-workers},
-then more threads are spawned, up to max_workers limit.
-Typically you'd want max_workers to equal maximum number
-of clients allowed.")
+ "Maximum number of worker threads. If the number of active clients exceeds
+@code{min-workers}, then more threads are spawned, up to @code{max_workers}
+limit. Typically you'd want @code{max_workers} to equal maximum number of
+clients allowed.")
(prio-workers
(integer 5)
- "Number of priority workers. If all workers from above
-pool are stuck, some calls marked as high priority
-(notably domainDestroy) can be executed in this pool.")
+ "Number of priority workers. If all workers from above pool are stuck,
+some calls marked as high priority (notably domainDestroy) can be executed in
+this pool.")
(max-requests
- (integer 20)
- "Total global limit on concurrent RPC calls.")
+ (integer 20)
+ "Total global limit on concurrent RPC calls.")
(max-client-requests
- (integer 5)
- "Limit on concurrent requests from a single client
-connection. To avoid one client monopolizing the server
-this should be a small fraction of the global max_requests
-and max_workers parameter.")
+ (integer 5)
+ "Limit on concurrent requests from a single client connection. To avoid
+one client monopolizing the server this should be a small fraction of the
+global max_requests and max_workers parameter.")
(admin-min-workers
- (integer 1)
- "Same as @code{min-workers} but for the admin interface.")
+ (integer 1)
+ "Same as @code{min-workers} but for the admin interface.")
(admin-max-workers
- (integer 5)
- "Same as @code{max-workers} but for the admin interface.")
+ (integer 5)
+ "Same as @code{max-workers} but for the admin interface.")
(admin-max-clients
- (integer 5)
- "Same as @code{max-clients} but for the admin interface.")
+ (integer 5)
+ "Same as @code{max-clients} but for the admin interface.")
(admin-max-queued-clients
- (integer 5)
- "Same as @code{max-queued-clients} but for the admin interface.")
+ (integer 5)
+ "Same as @code{max-queued-clients} but for the admin interface.")
(admin-max-client-requests
- (integer 5)
- "Same as @code{max-client-requests} but for the admin interface.")
+ (integer 5)
+ "Same as @code{max-client-requests} but for the admin interface.")
(log-level
- (integer 3)
- "Logging level. 4 errors, 3 warnings, 2 information, 1 debug.")
+ (integer 3)
+ "Semi-deprecated option for the logging level: using the @code{log-filters}
+option instead is recommend, as it provides finer control. The log level can
+be set to @code{4} for errors, @code{3} for warnings, @code{2} for information
+or @code{1} for debug. Note that since @code{log-filters} and
+@code{log-outputs} take precedence over this option, you will need to also
+adjust their logging levels to avoid filtering out messages.")
(log-filters
- (string "3:remote 4:event")
- "Logging filters.
-
-A filter allows selecting a different logging level for a given category
-of logs
-The format for a filter is one of:
-@itemize
-@item x:name
-
-@item x:+name
-@end itemize
-
-where @code{name} is a string which is matched against the category
-given in the @code{VIR_LOG_INIT()} at the top of each libvirt source
-file, e.g., \"remote\", \"qemu\", or \"util.json\" (the name in the
-filter can be a substring of the full category name, in order
-to match multiple similar categories), the optional \"+\" prefix
-tells libvirt to log stack trace for each message matching
-name, and @code{x} is the minimal level where matching messages should
-be logged:
-
-@itemize
-@item 1: DEBUG
-@item 2: INFO
-@item 3: WARNING
-@item 4: ERROR
-@end itemize
-
-Multiple filters can be defined in a single filters statement, they just
-need to be separated by spaces.")
+ (string "3:remote 4:event")
+ "Logging filters. A filter allows selecting a different logging level for
+a given category of logs. The format for a filter is either
+@samp{@var{x}:@var{name}} or @samp{@var{x}:+@var{name}}, where name is a
+string which is matched against the category given in the
+@code{VIR_LOG_INIT()} at the top of each libvirt source file, e.g.,
+@samp{\"remote\"}, @samp{\"qemu\"}, or @samp{\"util.json\"}. @var{name} can
+be a substring of the full category name, in order to match multiple similar
+categories. The optional @samp{+} prefix tells libvirt to log stack traces
+for each message matching @var{name}. @var{x} is the log level value used to
+filter the associated message category. @var{x} can be set to @samp{4} for
+errors, @samp{3} for warnings, @samp{2} for information, or @samp{1} for
+debug. Multiple filters can be defined in a single filters statement, as
+space-separated values. Since @code{log-outputs} also include a level filter,
+you may need to also adjust its value to see all the filtered messages.")
(log-outputs
- (string "3:syslog:libvirtd")
- "Logging outputs.
-
-An output is one of the places to save logging information
-The format for an output can be:
-
-@table @code
-@item x:stderr
-output goes to stderr
-
-@item x:syslog:name
-use syslog for the output and use the given name as the ident
-
-@item x:file:file_path
-output to a file, with the given filepath
-
-@item x:journald
-output to journald logging system
-@end table
-
-In all case the x prefix is the minimal level, acting as a filter
-
-@itemize
-@item 1: DEBUG
-@item 2: INFO
-@item 3: WARNING
-@item 4: ERROR
-@end itemize
-
-Multiple outputs can be defined, they just need to be separated by spaces.")
+ (string "3:syslog:libvirtd")
+ "Logging outputs. An output is one of the places to save logging
+information. The format for an output has the form
+@code{\"@var{x}:var{output}\"}, where @var{output} can be @samp{stderr},
+@samp{syslog:@var{name}}, where @var{name} is the syslog @code{ident} value to
+use, or @samp{file:@var{file_name}}, where @var{file_name} is the file name of
+the file to output to. @var{x} is the minimal level, which acts as a filter.
+@var{x} can be set to @var{x} can be set to @samp{4} for errors, @samp{3} for
+warnings, @samp{2} for information, or @samp{1} for debug. Multiple filters
+can be defined in a single filters statement, as space-separated values.")
(audit-level
- (integer 1)
- "Allows usage of the auditing subsystem to be altered
-
-@itemize
-@item 0: disable all auditing
-@item 1: enable auditing, only if enabled on host
-@item 2: enable auditing, and exit if disabled on host.
-@end itemize
-")
+ (integer 1)
+ "Modify the behavior of the auditing subsystem. @samp{0} disables all
+auditing, samp{1} enables auditing only if enabled on thehost and @samp{2}
+enables auditing but exits if it is disabled on the host.")
(audit-logging
- (boolean #f)
- "Send audit messages via libvirt logging infrastructure.")
+ (boolean #f)
+ "Send audit messages via libvirt logging infrastructure.")
(host-uuid
- (optional-string "")
- "Host UUID. UUID must not have all digits be the same.")
+ (optional-string "")
+ "Host UUID. UUID must not have all digits be the same.")
(host-uuid-source
- (string "smbios")
- "Source to read host UUID.
-
-@itemize
-
-@item @code{smbios}: fetch the UUID from @code{dmidecode -s system-uuid}
-
-@item @code{machine-id}: fetch the UUID from @code{/etc/machine-id}
-
-@end itemize
-
-If @code{dmidecode} does not provide a valid UUID a temporary UUID
-will be generated.")
+ (string "smbios")
+ "Source to read host UUID. Use @code{\"smbios\"} to fetch the UUID via
+@code{dmidecode -s system-uuid}, or @code{\"machine-id\"} to fetch the UUID
+from @code{/etc/machine-id}. If @code{dmidecode} does not provide a valid
+UUID a temporary UUID will be generated.")
(keepalive-interval
- (integer 5)
- "A keepalive message is sent to a client after
-@code{keepalive_interval} seconds of inactivity to check if
-the client is still responding. If set to -1, libvirtd will
-never send keepalive requests; however clients can still send
-them and the daemon will send responses.")
+ (integer 5)
+ "A keepalive message is sent to a client after @code{keepalive_interval}
+seconds of inactivity to check if the client is still responding. If set to
+@code{-1}, libvirtd won't send keepalive requests; however clients can still
+send them and the daemon will send responses.")
(keepalive-count
- (integer 5)
- "Maximum number of keepalive messages that are allowed to be sent
-to the client without getting any response before the connection is
-considered broken.
-
-In other words, the connection is automatically
-closed approximately after
-@code{keepalive_interval * (keepalive_count + 1)} seconds since the last
-message received from the client. When @code{keepalive-count} is
-set to 0, connections will be automatically closed after
-@code{keepalive-interval} seconds of inactivity without sending any
-keepalive messages.")
+ (integer 5)
+ "Maximum number of keepalive messages that are allowed to be sent to the
+client without getting any response before the connection is considered
+broken. In other words, the connection is automatically closed approximately
+after @samp{keepalive_interval * (keepalive_count + 1)} seconds since the last
+message received from the client. When @code{keepalive-count} is set to
+@code{0}, connections will be automatically closed after
+@code{keepalive-interval} seconds of inactivity without sending any keepalive
+messages.")
(admin-keepalive-interval
- (integer 5)
- "Same as above but for admin interface.")
+ (integer 5)
+ "Same as above but for admin interface.")
(admin-keepalive-count
- (integer 5)
- "Same as above but for admin interface.")
+ (integer 5)
+ "Same as above but for admin interface.")
(ovs-timeout
- (integer 5)
- "Timeout for Open vSwitch calls.
-
-The @code{ovs-vsctl} utility is used for the configuration and
-its timeout option is set by default to 5 seconds to avoid
-potential infinite waits blocking libvirt."))
+ (integer 5)
+ "Timeout for Open vSwitch calls. The @code{ovs-vsctl} utility is used for
+the configuration and its timeout option is set by default to 5 seconds to
+avoid potential infinite waits blocking libvirt."))
(define* (libvirt-conf-file config)
"Return a libvirtd config file."