rework and reformating of services

This commit is contained in:
Jean-François GUILLAUME 2022-11-24 15:00:33 +01:00
parent c7178062a0
commit ea3c876afc
GPG key ID: 38751DAE145EFB5A
7 changed files with 548 additions and 701 deletions

View file

@ -18,14 +18,14 @@
<sssd-configuration> <sssd-configuration>
sssd-configuration make-sssd-configuration sssd-configuration? sssd-configuration make-sssd-configuration sssd-configuration?
(sssd-pkg sssd-pkg (default sssd)) (sssd-pkg sssd-pkg (default sssd))
(sssd-conf sssd-conf (default "/etc/sssd/sssd.conf")) (sssd-config-file sssd-config-file (default "/etc/sssd/sssd.conf"))
(sssd-logger sssd-logger (default "stderr")) (sssd-logger sssd-logger (default "stderr"))
(sssd-debug-level sssd-debug-level (default "3")) (sssd-debug-level sssd-debug-level (default "3"))
(log-file log-file (default "/var/log/sssd/sssd.log"))) (log-file log-file (default "/var/log/sssd/sssd.log")))
(define sssd-service (define sssd-service
(match-lambda (match-lambda
(($ <sssd-configuration> sssd-pkg sssd-conf sssd-logger sssd-debug-level log-file) (($ <sssd-configuration> sssd-pkg sssd-config-file sssd-logger sssd-debug-level log-file)
(list (list
(shepherd-service (shepherd-service
(provision '(sssd)) (provision '(sssd))
@ -36,7 +36,7 @@
(list (list
#$(file-append sssd-pkg "/sbin/sssd") #$(file-append sssd-pkg "/sbin/sssd")
"-i" "-i"
"-c" #$sssd-conf "-c" #$sssd-config-file
"--logger" #$sssd-logger "--logger" #$sssd-logger
"-d" #$sssd-debug-level "-d" #$sssd-debug-level
) )

View file

@ -1,26 +1,3 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify
;;; it under the terms of the GNU General Public License as published by
;;; the Free Software Foundation, either version 3 of the License, or
;;; (at your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful,
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (glicid services cuirass) (define-module (glicid services cuirass)
#:use-module (guix channels) #:use-module (guix channels)
#:use-module (guix gexp) #:use-module (guix gexp)
@ -50,15 +27,7 @@
cuirass-remote-worker-configuration? cuirass-remote-worker-configuration?
cuirass-remote-worker-service-type)) cuirass-remote-worker-service-type))
;;;; Commentary: (define %cuirass-default-database "dbname=cuirass")
;;;
;;; This module implements a service that to run instances of Cuirass, a
;;; continuous integration tool.
;;;
;;;; Code:
(define %cuirass-default-database
"dbname=cuirass")
(define-record-type* <cuirass-remote-server-configuration> (define-record-type* <cuirass-remote-server-configuration>
cuirass-remote-server-configuration make-cuirass-remote-server-configuration cuirass-remote-server-configuration make-cuirass-remote-server-configuration
@ -368,7 +337,7 @@
(define (cuirass-remote-worker-shepherd-service config) (define (cuirass-remote-worker-shepherd-service config)
"Return a <shepherd-service> for the Cuirass remote worker service with "Return a <shepherd-service> for the Cuirass remote worker service with
CONFIG." CONFIG."
(match-record config <cuirass-remote-worker-configuration> (match-record config <cuirass-remote-worker-configuration>
(cuirass workers server systems log-file publish-port (cuirass workers server systems log-file publish-port
substitute-urls public-key private-key) substitute-urls public-key private-key)
@ -422,9 +391,7 @@ CONFIG."
(define cuirass-remote-worker-service-type (define cuirass-remote-worker-service-type
(service-type (service-type
(name 'cuirass-remote-worker) (name 'cuirass-remote-worker)
(extensions (extensions (list
(list
(service-extension shepherd-root-service-type (service-extension shepherd-root-service-type
cuirass-remote-worker-shepherd-service))) cuirass-remote-worker-shepherd-service)))
(description (description "Run the Cuirass remote build worker service.")))
"Run the Cuirass remote build worker service.")))

View file

@ -12,62 +12,39 @@
autofs-configuration? autofs-configuration?
autofs-service autofs-service
autofs-service-type autofs-service-type
) ))
)
(define %default-autofs-conf (define %default-autofs-conf
(plain-file "autofs" " (plain-file "autofs" "
# Empty file as we do nothing by default # Empty file as we do nothing by default
") "))
)
(define-record-type* <autofs-configuration> (define-record-type*
<autofs-configuration>
autofs-configuration make-autofs-configuration autofs-configuration make-autofs-configuration
autofs-configuration? autofs-configuration?
(autofs autofs-configuration-autofs (autofs-pkg autofs-pkg (default autofs))
(default autofs) (autofs-config-file autofs-config-file (default %default-autofs-conf))
) (log-file autofs-log-file (default "/var/log/autofs.log")))
(config-file autofs-config-file
(default %default-autofs-conf)
)
(log-file autofs-log-file
(default "/var/log/autofs.log")
)
)
(define autofs-service (define autofs-service
(match-lambda (match-lambda
(($ <autofs-configuration> autofs config-file log-file) (($ <autofs-configuration> autofs-pkg autofs-config-file log-file)
(list (list
(shepherd-service (shepherd-service
(provision '(autofs) ) (provision '(autofs))
(documentation "Run autofs.") (documentation "Run autofs.")
(requirement '(user-processes)) (requirement '(user-processes))
(respawn? #t) (respawn? #t)
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list (list
#$(file-append autofs "/sbin/automount") #$(file-append autofs-pkg "/sbin/automount") "-d" "-f")
"-d" "-f"
)
#:log-file #$log-file #:log-file #$log-file
)) ))
(stop #~(make-kill-destructor)) (stop #~(make-kill-destructor)))))))
)
)
)
)
)
(define autofs-service-type (define autofs-service-type
(service-type (name 'autofs) (service-type
(extensions (name 'autofs)
(list ( (extensions (list
service-extension (service-extension shepherd-root-service-type autofs-service)))
shepherd-root-service-type (description "Run autofs")))
autofs-service
))
)
(description "Run autofs")
)
)

View file

@ -12,67 +12,44 @@
squid-configuration? squid-configuration?
squid-shepherd-service squid-shepherd-service
squid-service-type squid-service-type
) ))
)
(define-record-type* <squid-configuration> (define-record-type*
<squid-configuration>
squid-configuration make-squid-configuration squid-configuration make-squid-configuration
squid-configuration? squid-configuration?
(squid squid-configuration-squid (squid-pkg squid-pkg (default squid))
(default squid) (squid-port squid-port (default 3128))
(squid-loglevel squid-loglevel (default 1))
(squid-config-file squid-config-file (default (file-append squid "/etc/squid.conf")))
(pid-file squid-pid-file (default "/var/run/squid/squid.pid"))
(log-file squid-log-file (default "/var/log/squid/squid.log"))
) )
(port squid-configuration-port
(default 3128)
)
(loglevel squid-configuration-loglevel
(default 1)
)
(pid-file squid-configuration-pid-file
(default "/var/run/squid/squid.pid")
)
(config-file squid-configuration-config-file
(default (file-append squid "/etc/squid.conf"))
)
(log-file squid-configuration-log-file
(default "/var/log/squid/squid.log")
)
)
(define squid-shepherd-service (define squid-shepherd-service
(match-lambda (match-lambda
(($ <squid-configuration> squid port loglevel pid-file config-file log-file) (($ <squid-configuration> squid-pkg squid-port squid-loglevel squid-config-file pid-file log-file)
(list (list
(shepherd-service (shepherd-service
(provision '(squid) ) (provision '(squid))
(documentation "Run squid.") (documentation "Run squid.")
(requirement '(user-processes)) (requirement '(user-processes))
(respawn? #t) (respawn? #t)
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list (list
#$(file-append squid "/sbin/squid") #$(file-append squid-pkg "/sbin/squid")
"-f" #$config-file "-f" #$squid-config-file
) )
#:pid-file #$pid-file #:pid-file #$pid-file
#:log-file #$log-file #:log-file #$log-file
#:user (passwd:uid (getpwnam "squid")) #:user (passwd:uid (getpwnam "squid"))
#:group (passwd:gid (getpwnam "squid")) #:group (passwd:gid (getpwnam "squid"))
#:resource-limits '((nofile 16384 16384)) #:resource-limits '((nofile 16384 16384))))
)) (stop #~(make-kill-destructor)))))))
(stop #~(make-kill-destructor))
)
)
)
)
)
(define %squid-activation (define %squid-activation
(with-imported-modules '((guix build utils))
#~(begin #~(begin
(use-modules (guix build utils))
(define (touch file-name)
(call-with-output-file file-name (const #t))
)
(mkdir-p "/var/run/squid") (mkdir-p "/var/run/squid")
(mkdir-p "/var/log/squid") (mkdir-p "/var/log/squid")
(mkdir-p "/var/cache/squid") (mkdir-p "/var/cache/squid")
@ -89,10 +66,7 @@
(chown "/var/log/squid/squid_access.log" (passwd:uid (getpwnam "squid")) (passwd:gid (getpwnam "squid"))) (chown "/var/log/squid/squid_access.log" (passwd:uid (getpwnam "squid")) (passwd:gid (getpwnam "squid")))
(chown "/var/log/squid/squid_cache.log" (passwd:uid (getpwnam "squid")) (passwd:gid (getpwnam "squid"))) (chown "/var/log/squid/squid_cache.log" (passwd:uid (getpwnam "squid")) (passwd:gid (getpwnam "squid")))
(chown "/var/log/squid/squid_cache_store.log" (passwd:uid (getpwnam "squid")) (passwd:gid (getpwnam "squid"))) (chown "/var/log/squid/squid_cache_store.log" (passwd:uid (getpwnam "squid")) (passwd:gid (getpwnam "squid")))
#t #t ))
)
)
)
(define %squid-accounts (define %squid-accounts
(list (list
@ -103,20 +77,13 @@
(system? #t) (system? #t)
(comment "Squid server user") (comment "Squid server user")
(home-directory "/var/spool/squid") (home-directory "/var/spool/squid")
(shell (file-append bash "/bin/bash")) (shell (file-append bash "/bin/bash")))))
)
)
)
(define squid-service-type (define squid-service-type
(service-type (name 'squid) (service-type
(extensions (name 'squid)
(list (extensions (list
(service-extension shepherd-root-service-type squid-shepherd-service) (service-extension shepherd-root-service-type squid-shepherd-service)
(service-extension activation-service-type (const %squid-activation)) (service-extension activation-service-type (const %squid-activation))
(service-extension account-service-type (const %squid-accounts)) (service-extension account-service-type (const %squid-accounts))))
) (description "Run @uref{http://www.squid-cache.org/, squid} community developped Squid software.")))
)
(description "Run @uref{http://www.squid-cache.org/, squid} community developped Squid software.")
)
)

View file

@ -10,38 +10,25 @@
openldap-configuration? openldap-configuration?
openldap-shepherd-service openldap-shepherd-service
openldap-service-type openldap-service-type
) ))
)
(define-record-type* <openldap-configuration> (define-record-type*
<openldap-configuration>
openldap-configuration make-openldap-configuration openldap-configuration make-openldap-configuration
openldap-configuration? openldap-configuration?
(openldap openldap-configuration-openldap (openldap-pkg openldap-pkg (default openldap))
(default openldap) (uri openldap-uri (default "ldapi:// ldap://"))
) (logflags openldap-logflags (default "0"))
(uri openldap-configuration-uri (pid-file openldap-pid-file (default "/var/run/openldap/slapd.pid"))
(default "ldapi:// ldap://") (config-file openldap--config-file (default (file-append openldap "/etc/openldap/slapd.conf")))
) (log-file openldap-log-file (default "/var/log/slapd.log")))
(logflags openldap-configuration-logflags
(default "0")
)
(pid-file openldap-configuration-pid-file
(default "/var/run/openldap/slapd.pid")
)
(config-file openldap-configuration-config-file
(default (file-append openldap "/etc/openldap/slapd.conf"))
)
(log-file openldap-configuration-log-file
(default "/var/log/slapd.log")
)
)
(define openldap-shepherd-service (define openldap-shepherd-service
(match-lambda (match-lambda
(($ <openldap-configuration> openldap uri logflags pid-file config-file log-file) (($ <openldap-configuration> openldap-pkg uri logflags pid-file config-file log-file)
(list (list
(shepherd-service (shepherd-service
(provision '(slapd) ) (provision '(slapd))
(documentation "Run openldap.") (documentation "Run openldap.")
(requirement '(user-processes)) (requirement '(user-processes))
(respawn? #t) (respawn? #t)
@ -53,35 +40,20 @@
"-f" #$config-file "-f" #$config-file
) )
#:pid-file #$pid-file #:pid-file #$pid-file
#:log-file #$log-file #:log-file #$log-file ))
)) (stop #~(make-kill-destructor)))))))
(stop #~(make-kill-destructor))
)
)
)
)
)
(define %openldap-activation (define %openldap-activation
(with-imported-modules '((guix build utils))
#~(begin #~(begin
(use-modules (guix build utils))
(mkdir-p "/var/run/openldap") (mkdir-p "/var/run/openldap")
(mkdir-p "/var/lib/ldap") (mkdir-p "/var/lib/ldap")
#t #t ))
)
)
)
(define openldap-service-type (define openldap-service-type
(service-type (name 'slapd) (service-type
(extensions (name 'slapd)
(list (extensions (list
(service-extension shepherd-root-service-type openldap-shepherd-service) (service-extension shepherd-root-service-type openldap-shepherd-service)
(service-extension activation-service-type (const %openldap-activation)) (service-extension activation-service-type (const %openldap-activation))))
) (description "Run @uref{https://www.openldap.org, Openldap} community developped LDAP software.")))
)
(description "Run @uref{https://www.openldap.org, Openldap} community developped LDAP software.")
)
)

View file

@ -70,12 +70,9 @@
(define munged-service-type (define munged-service-type
(service-type (service-type
(name 'munged) (name 'munged)
(extensions (extensions (list
(list
(service-extension shepherd-root-service-type munged-service) (service-extension shepherd-root-service-type munged-service)
(service-extension activation-service-type (const %munged-activation)) (service-extension activation-service-type (const %munged-activation)) ) )
)
)
(description "Run munged"))) (description "Run munged")))
; ;
@ -150,13 +147,10 @@
(define slurmdbd-service-type (define slurmdbd-service-type
(service-type (service-type
(name 'slurmdbd) (name 'slurmdbd)
(extensions (extensions (list
(list
(service-extension shepherd-root-service-type slurmdbd-service) (service-extension shepherd-root-service-type slurmdbd-service)
(service-extension activation-service-type (const %slurmdbd-activation)) (service-extension activation-service-type (const %slurmdbd-activation))
(service-extension account-service-type (const %slurm-accounts)) (service-extension account-service-type (const %slurm-accounts)) ) )
)
)
(description "Run slurmdbd"))) (description "Run slurmdbd")))
; ;
@ -216,13 +210,10 @@
(define slurmctld-service-type (define slurmctld-service-type
(service-type (service-type
(name 'slurmctld) (name 'slurmctld)
(extensions (extensions (list
(list
(service-extension shepherd-root-service-type slurmctld-service) (service-extension shepherd-root-service-type slurmctld-service)
(service-extension activation-service-type (const %slurmctld-activation)) (service-extension activation-service-type (const %slurmctld-activation))
(service-extension account-service-type (const %slurm-accounts)) (service-extension account-service-type (const %slurm-accounts)) ) )
)
)
(description "Run slurmctld"))) (description "Run slurmctld")))
; ;
@ -280,11 +271,8 @@
(define slurmd-service-type (define slurmd-service-type
(service-type (service-type
(name 'slurmd) (name 'slurmd)
(extensions (extensions (list
(list
(service-extension shepherd-root-service-type slurmd-service) (service-extension shepherd-root-service-type slurmd-service)
(service-extension activation-service-type (const %slurmd-activation)) (service-extension activation-service-type (const %slurmd-activation))
(service-extension account-service-type (const %slurm-accounts)) (service-extension account-service-type (const %slurm-accounts)) ) )
)
)
(description "Run slurmd"))) (description "Run slurmd")))

View file

@ -10,62 +10,38 @@
rc-local-configuration rc-local-configuration
rc-local-configuration? rc-local-configuration?
rc-local-service rc-local-service
rc-local-service-type rc-local-service-type))
)
)
(define %default-rc-local-conf (define %default-rc-local-conf
(plain-file "rc-local" " (plain-file "rc-local" "
# Empty file as we do nothing by default # Empty file as we do nothing by default
") "))
)
(define-record-type* <rc-local-configuration> (define-record-type*
<rc-local-configuration>
rc-local-configuration make-rc-local-configuration rc-local-configuration make-rc-local-configuration
rc-local-configuration? rc-local-configuration?
(config-file rc-local-config-file (config-file rc-local-config-file (default %default-rc-local-conf))
(default %default-rc-local-conf) (log-file log-file (default "/var/log/rc-local.log")))
)
(log-file rc-local-log-file
(default "/var/log/rc-local.log")
)
)
(define rc-local-service (define rc-local-service
(match-lambda (match-lambda
(($ <rc-local-configuration> config-file log-file) (($ <rc-local-configuration> config-file log-file)
(list (list
(shepherd-service (shepherd-service
(provision '(rc-local) ) (provision '(rc-local))
(documentation "Run rc-local.") (documentation "Run rc-local.")
(requirement '(user-processes)) (requirement '(user-processes))
(respawn? #f) (respawn? #f)
(one-shot? #t) (one-shot? #t)
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list (list #$(file-append bash "/bin/bash") "-l" #$config-file)
#$(file-append bash "/bin/bash") #:log-file #$log-file ))
"-l" (stop #~(make-kill-destructor)))))))
#$config-file
)
#:log-file #$log-file
))
(stop #~(make-kill-destructor))
)
)
)
)
)
(define rc-local-service-type (define rc-local-service-type
(service-type (name 'rc-local) (service-type
(extensions (name 'rc-local)
(list ( (extensions (list (service-extension shepherd-root-service-type rc-local-service)))
service-extension (description "Run a script in a rc-local like form")))
shepherd-root-service-type
rc-local-service
))
)
(description "Run a script in a rc-local like form")
)
)