mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 13:28:12 -05:00
install: Add a configuration template to the image.
* gnu/system/os-config.tmpl: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it * gnu/system/install.scm (configuration-template-service): New procedure. (installation-services): Call it. * doc/guix.texi (System Installation): Mention configuration-template.scm, and @include gnu/system/os-config.tmpl.
This commit is contained in:
parent
0a90af1531
commit
1dac856638
4 changed files with 59 additions and 16 deletions
|
@ -2850,24 +2850,11 @@ It is better to store that file on the target root file system, say, as
|
|||
@file{/mnt/etc/config.scm}.
|
||||
|
||||
A minimal operating system configuration, with just the bare minimum and
|
||||
only a root account would look like this:
|
||||
only a root account would look like this (on the installation system,
|
||||
this example is available as @file{/etc/configuration-template.scm}):
|
||||
|
||||
@example
|
||||
(use-modules (gnu))
|
||||
|
||||
(operating-system
|
||||
(host-name "foo")
|
||||
(timezone "Europe/Paris")
|
||||
(locale "en_US.UTF-8")
|
||||
|
||||
;; Assuming /dev/sdX is the target hard disk, and /dev/sdX1 the
|
||||
;; target root file system.
|
||||
(bootloader (grub-configuration (device "/dev/sdX")))
|
||||
(file-systems (cons (file-system
|
||||
(device "/dev/sdX1")
|
||||
(mount-point "/")
|
||||
(type "ext4"))
|
||||
%base-file-systems)))
|
||||
@include gnu/system/os-config.tmpl
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
|
|
|
@ -268,6 +268,7 @@ GNU_SYSTEM_MODULES = \
|
|||
gnu/system/file-systems.scm \
|
||||
gnu/system/grub.scm \
|
||||
gnu/system/install.scm \
|
||||
gnu/system/os-config.tmpl \
|
||||
gnu/system/linux.scm \
|
||||
gnu/system/linux-initrd.scm \
|
||||
gnu/system/shadow.scm \
|
||||
|
|
|
@ -115,6 +115,27 @@ (define (cow-store-service)
|
|||
(delete-file-recursively
|
||||
(string-append target #$%backing-directory))))))))
|
||||
|
||||
(define (configuration-template-service)
|
||||
"Return a dummy service whose purpose is to install an operating system
|
||||
configuration template file in the installation system."
|
||||
|
||||
(define local-template
|
||||
"/etc/configuration-template.scm")
|
||||
(define template
|
||||
(search-path %load-path "gnu/system/os-config.tmpl"))
|
||||
|
||||
(mlet %store-monad ((template (interned-file template)))
|
||||
(return (service
|
||||
(requirement '(root-file-system))
|
||||
(provision '(os-config-template))
|
||||
(documentation
|
||||
"This dummy service installs an OS configuration template.")
|
||||
(start #~(const #t))
|
||||
(stop #~(const #f))
|
||||
(activate
|
||||
#~(unless (file-exists? #$local-template)
|
||||
(copy-file #$template #$local-template)))))))
|
||||
|
||||
(define (installation-services)
|
||||
"Return the list services for the installation image."
|
||||
(let ((motd (text-file "motd" "
|
||||
|
@ -144,6 +165,9 @@ (define (normal-tty tty)
|
|||
#:auto-login "guest"
|
||||
#:login-program (log-to-info))
|
||||
|
||||
;; Documentation add-on.
|
||||
(configuration-template-service)
|
||||
|
||||
;; A bunch of 'root' ttys.
|
||||
(normal-tty "tty3")
|
||||
(normal-tty "tty4")
|
||||
|
|
31
gnu/system/os-config.tmpl
Normal file
31
gnu/system/os-config.tmpl
Normal file
|
@ -0,0 +1,31 @@
|
|||
;; This is an operating system configuration template.
|
||||
|
||||
(use-modules (gnu))
|
||||
|
||||
(operating-system
|
||||
(host-name "antelope")
|
||||
(timezone "Europe/Paris")
|
||||
(locale "en_US.UTF-8")
|
||||
|
||||
;; Assuming /dev/sdX is the target hard disk, and "root" is
|
||||
;; the label of the target root file system.
|
||||
(bootloader (grub-configuration (device "/dev/sdX")))
|
||||
(file-systems (cons (file-system
|
||||
(device "root")
|
||||
(title 'label)
|
||||
(mount-point "/")
|
||||
(type "ext4"))
|
||||
%base-file-systems))
|
||||
|
||||
;; This is where user accounts are specified. The "root"
|
||||
;; account is implicit, and is initially created with the
|
||||
;; empty password.
|
||||
(users (list (user-account
|
||||
(name "alice")
|
||||
(comment "Bob's sister")
|
||||
(group "users")
|
||||
|
||||
;; Adding the account to the "wheel" group
|
||||
;; makes it a sudoer.
|
||||
(supplementary-groups '("wheel"))
|
||||
(home-directory "/home/alice")))))
|
Loading…
Reference in a new issue