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 make-sssd-configuration sssd-configuration?
(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-debug-level sssd-debug-level (default "3"))
(log-file log-file (default "/var/log/sssd/sssd.log")))
(define sssd-service
(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
(shepherd-service
(provision '(sssd))
@ -36,7 +36,7 @@
(list
#$(file-append sssd-pkg "/sbin/sssd")
"-i"
"-c" #$sssd-conf
"-c" #$sssd-config-file
"--logger" #$sssd-logger
"-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)
#:use-module (guix channels)
#:use-module (guix gexp)
@ -50,15 +27,7 @@
cuirass-remote-worker-configuration?
cuirass-remote-worker-service-type))
;;;; Commentary:
;;;
;;; This module implements a service that to run instances of Cuirass, a
;;; continuous integration tool.
;;;
;;;; Code:
(define %cuirass-default-database
"dbname=cuirass")
(define %cuirass-default-database "dbname=cuirass")
(define-record-type* <cuirass-remote-server-configuration>
cuirass-remote-server-configuration make-cuirass-remote-server-configuration
@ -422,9 +391,7 @@ CONFIG."
(define cuirass-remote-worker-service-type
(service-type
(name 'cuirass-remote-worker)
(extensions
(list
(extensions (list
(service-extension shepherd-root-service-type
cuirass-remote-worker-shepherd-service)))
(description
"Run the Cuirass remote build worker service.")))
(description "Run the Cuirass remote build worker service.")))

View file

@ -12,32 +12,23 @@
autofs-configuration?
autofs-service
autofs-service-type
)
)
))
(define %default-autofs-conf
(plain-file "autofs" "
# 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?
(autofs autofs-configuration-autofs
(default autofs)
)
(config-file autofs-config-file
(default %default-autofs-conf)
)
(log-file autofs-log-file
(default "/var/log/autofs.log")
)
)
(autofs-pkg autofs-pkg (default autofs))
(autofs-config-file autofs-config-file (default %default-autofs-conf))
(log-file autofs-log-file (default "/var/log/autofs.log")))
(define autofs-service
(match-lambda
(($ <autofs-configuration> autofs config-file log-file)
(($ <autofs-configuration> autofs-pkg autofs-config-file log-file)
(list
(shepherd-service
(provision '(autofs))
@ -46,28 +37,14 @@
(respawn? #t)
(start #~(make-forkexec-constructor
(list
#$(file-append autofs "/sbin/automount")
"-d" "-f"
)
#$(file-append autofs-pkg "/sbin/automount") "-d" "-f")
#:log-file #$log-file
))
(stop #~(make-kill-destructor))
)
)
)
)
)
(stop #~(make-kill-destructor)))))))
(define autofs-service-type
(service-type (name 'autofs)
(extensions
(list (
service-extension
shepherd-root-service-type
autofs-service
))
)
(description "Run autofs")
)
)
(service-type
(name 'autofs)
(extensions (list
(service-extension shepherd-root-service-type autofs-service)))
(description "Run autofs")))

View file

@ -12,35 +12,23 @@
squid-configuration?
squid-shepherd-service
squid-service-type
)
)
))
(define-record-type* <squid-configuration>
(define-record-type*
<squid-configuration>
squid-configuration make-squid-configuration
squid-configuration?
(squid squid-configuration-squid
(default squid)
)
(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")
)
(squid-pkg squid-pkg (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"))
)
(define squid-shepherd-service
(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
(shepherd-service
(provision '(squid))
@ -49,30 +37,19 @@
(respawn? #t)
(start #~(make-forkexec-constructor
(list
#$(file-append squid "/sbin/squid")
"-f" #$config-file
#$(file-append squid-pkg "/sbin/squid")
"-f" #$squid-config-file
)
#:pid-file #$pid-file
#:log-file #$log-file
#:user (passwd:uid (getpwnam "squid"))
#:group (passwd:gid (getpwnam "squid"))
#:resource-limits '((nofile 16384 16384))
))
(stop #~(make-kill-destructor))
)
)
)
)
)
#:resource-limits '((nofile 16384 16384))))
(stop #~(make-kill-destructor)))))))
(define %squid-activation
(with-imported-modules '((guix build utils))
#~(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/log/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_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")))
#t
)
)
)
#t ))
(define %squid-accounts
(list
@ -103,20 +77,13 @@
(system? #t)
(comment "Squid server user")
(home-directory "/var/spool/squid")
(shell (file-append bash "/bin/bash"))
)
)
)
(shell (file-append bash "/bin/bash")))))
(define squid-service-type
(service-type (name 'squid)
(extensions
(list
(service-type
(name 'squid)
(extensions (list
(service-extension shepherd-root-service-type squid-shepherd-service)
(service-extension activation-service-type (const %squid-activation))
(service-extension account-service-type (const %squid-accounts))
)
)
(description "Run @uref{http://www.squid-cache.org/, squid} community developped Squid software.")
)
)
(service-extension account-service-type (const %squid-accounts))))
(description "Run @uref{http://www.squid-cache.org/, squid} community developped Squid software.")))

View file

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

View file

@ -70,12 +70,9 @@
(define munged-service-type
(service-type
(name 'munged)
(extensions
(list
(extensions (list
(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")))
;
@ -150,13 +147,10 @@
(define slurmdbd-service-type
(service-type
(name 'slurmdbd)
(extensions
(list
(extensions (list
(service-extension shepherd-root-service-type slurmdbd-service)
(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")))
;
@ -216,13 +210,10 @@
(define slurmctld-service-type
(service-type
(name 'slurmctld)
(extensions
(list
(extensions (list
(service-extension shepherd-root-service-type slurmctld-service)
(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")))
;
@ -280,11 +271,8 @@
(define slurmd-service-type
(service-type
(name 'slurmd)
(extensions
(list
(extensions (list
(service-extension shepherd-root-service-type slurmd-service)
(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")))

View file

@ -10,26 +10,19 @@
rc-local-configuration
rc-local-configuration?
rc-local-service
rc-local-service-type
)
)
rc-local-service-type))
(define %default-rc-local-conf
(plain-file "rc-local" "
# 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?
(config-file rc-local-config-file
(default %default-rc-local-conf)
)
(log-file rc-local-log-file
(default "/var/log/rc-local.log")
)
)
(config-file rc-local-config-file (default %default-rc-local-conf))
(log-file log-file (default "/var/log/rc-local.log")))
(define rc-local-service
(match-lambda
@ -42,30 +35,13 @@
(respawn? #f)
(one-shot? #t)
(start #~(make-forkexec-constructor
(list
#$(file-append bash "/bin/bash")
"-l"
#$config-file
)
#:log-file #$log-file
))
(stop #~(make-kill-destructor))
)
)
)
)
)
(list #$(file-append bash "/bin/bash") "-l" #$config-file)
#:log-file #$log-file ))
(stop #~(make-kill-destructor)))))))
(define rc-local-service-type
(service-type (name 'rc-local)
(extensions
(list (
service-extension
shepherd-root-service-type
rc-local-service
))
)
(description "Run a script in a rc-local like form")
)
)
(service-type
(name 'rc-local)
(extensions (list (service-extension shepherd-root-service-type rc-local-service)))
(description "Run a script in a rc-local like form")))