doc: Give an example showing how to add an account in the childhurd.

* doc/guix.texi (Virtualization Services): Give an example showing how
to add an account.
This commit is contained in:
Ludovic Courtès 2023-09-22 14:39:57 +02:00
parent c3a19cc2ac
commit 990d20d4a8
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -35731,6 +35731,57 @@ initialize ``secrets'' inside the VM: SSH host keys, authorized
substitute keys, and so on---see the explanation of @code{secret-root}
below.
You will probably find it useful to create an account for you in the
GNU/Hurd virtual machine and to authorize logins with your SSH key. To
do that, you can define the GNU/Hurd system in the usual way
(@pxref{Using the Configuration System}), and then pass that operating
system as the @code{os} field of @code{hurd-vm-configuration}, as in
this example:
@lisp
(define childhurd-os
;; Definition of my GNU/Hurd system, derived from the default one.
(operating-system
(inherit %hurd-vm-operating-system)
;; Add a user account.
(users (cons (user-account
(name "charlie")
(comment "This is me!")
(group "users")
(supplementary-groups '("wheel"))) ;for 'sudo'
%base-user-accounts))
(services
;; Modify the SSH configuration to allow login as "root"
;; and as "charlie" using public key authentication.
(modify-services (operating-system-user-services
%hurd-vm-operating-system)
(openssh-service-type
config => (openssh-configuration
(inherit config)
(authorized-keys
`(("root"
,(local-file
"/home/charlie/.ssh/id_rsa.pub"))
("charlie"
,(local-file
"/home/charlie/.ssh/id_rsa.pub"))))))))))
(operating-system
;; @dots{}
(services
;; Add the 'hurd-vm' service, configured to use the
;; operating system configuration above.
(append (list (service hurd-vm-service-type
(hurd-vm-configuration
(os %childhurd-os))))
%base-services)))
@end lisp
That's it! The remainder of this section provides the reference of the
service configuration.
@defvar hurd-vm-service-type
This is the type of the Hurd in a Virtual Machine service. Its value
must be a @code{hurd-vm-configuration} object, which specifies the