diff --git a/glicid/services/authentication.scm b/glicid/services/authentication.scm index 6311dcd..bfdff3b 100644 --- a/glicid/services/authentication.scm +++ b/glicid/services/authentication.scm @@ -36,22 +36,20 @@ (list #$(file-append sssd-pkg "/sbin/sssd") "-i" - "-c" sssd-conf - "--logger" sssd-logger - "-d" sssd-debug-level + "-c" #$sssd-conf + "--logger" #$sssd-logger + "-d" #$sssd-debug-level ) #:log-file #$log-file )) (stop #~(make-kill-destructor))))))) (define %sssd-activation - (with-imported-modules '((guix build utils)) - #~(begin - (touch "/var/log/toto.log") - (mkdir-p "/etc/sssd") - (mkdir-p "/var/log/sssd") - (mkdir-p "/var/lib/sss/db") - #t ))) + #~(begin + (mkdir-p "/etc/sssd") + (mkdir-p "/var/log/sssd") + (mkdir-p "/var/lib/sss/db") + #t )) (define sssd-service-type (service-type diff --git a/glicid/services/parallel.scm b/glicid/services/parallel.scm index cee82c0..e8fa7e6 100644 --- a/glicid/services/parallel.scm +++ b/glicid/services/parallel.scm @@ -1,98 +1,82 @@ (define-module (glicid services parallel) - #:use-module (gnu packages bash) - #:use-module (gnu services) - #:use-module (gnu services shepherd) - #:use-module (gnu system shadow) - #:use-module (guix) - #:use-module (guix records) - #:use-module (ice-9 match) - #:use-module (gnu packages parallel) - #:use-module (glicid system file-systems) - #:export ( - munged-configuration - munged-configuration? - munged-service - munged-service-type - slurmdbd-configuration - slurmdbd-configuration? - slurmdbd-service - slurmdbd-service-type - slurmctld-configuration - slurmctld-configuration? - slurmctld-service - slurmctld-service-type - slurmd-configuration - slurmd-configuration? - slurmd-service - slurmd-service-type - %slurm-accounts - ) -) - + #:use-module (gnu packages bash) + #:use-module (gnu services) + #:use-module (gnu services shepherd) + #:use-module (gnu system shadow) + #:use-module (guix) + #:use-module (guix build utils) + #:use-module (guix records) + #:use-module (ice-9 match) + #:use-module (gnu packages parallel) + #:use-module (glicid system file-systems) + #:use-module (glicid utils) + #:export ( + munged-configuration + munged-configuration? + munged-service + munged-service-type + slurmdbd-configuration + slurmdbd-configuration? + slurmdbd-service + slurmdbd-service-type + slurmctld-configuration + slurmctld-configuration? + slurmctld-service + slurmctld-service-type + slurmd-configuration + slurmd-configuration? + slurmd-service + slurmd-service-type + %slurm-accounts + )) ; ; Munged ; -(define-record-type* +(define-record-type* + munged-configuration make-munged-configuration munged-configuration? - (munge munge-configuration-munge - (default munge) - ) - (key-file munged-key-file - (default (file-append munge "/etc/munge/munged.key")) - ) - (log-file munged-log-file - (default "/var/log/munged.log") - ) -) + (munge munge-configuration-munge (default munge)) + (key-file munged-key-file (default (file-append munge "/etc/munge/munged.key"))) + (log-file munged-log-file (default "/var/log/munged.log"))) (define munged-service (match-lambda (($ munge key-file log-file) - (list - (shepherd-service - (provision '(munged) ) - (documentation "Run munged.") - (requirement '(user-processes)) - (respawn? #t) - (start #~(make-forkexec-constructor - (list - #$(file-append munge "/sbin/munged") - "-F" - "-f" ; until we fix the permissions - "--key-file" #$key-file - ) - #:log-file #$log-file - )) - (stop #~(make-kill-destructor)) - ) - ) - ) - ) -) + (list + (shepherd-service + (provision '(munged)) + (documentation "Run munged.") + (requirement '(user-processes)) + (respawn? #t) + (start #~(make-forkexec-constructor + (list + #$(file-append munge "/sbin/munged") + "-F" + "-f" ; until we fix the permissions + "--key-file" #$key-file + ) + #:log-file #$log-file + )) + (stop #~(make-kill-destructor))))))) (define %munged-activation - (with-imported-modules '((guix build utils)) - #~(begin - (use-modules (guix build utils)) - (mkdir-p "/var/run/munge") - (mkdir-p "/var/lib/munge") - #t - ) - ) -) + #~(begin + (mkdir-p "/var/run/munge") + (mkdir-p "/var/lib/munge") + #t + )) (define munged-service-type - (service-type (name 'munged) + (service-type + (name 'munged) (extensions (list (service-extension shepherd-root-service-type munged-service) (service-extension activation-service-type (const %munged-activation)) + ) ) - ) - (description "Run munged") - ) -) + (description "Run munged"))) ; ; Shared slurm account @@ -107,267 +91,200 @@ (system? #t) (comment "slurm server user") (home-directory "/var/spool/slurm") - (shell (file-append bash "/bin/bash")) - ) - ) -) + (shell (file-append bash "/bin/bash"))))) ; ; slurmdbd ; -(define-record-type* +(define-record-type* + slurmdbd-configuration make-slurmdbd-configuration slurmdbd-configuration? - (slurm slurm-configuration-slurm - (default slurm) - ) - (slurmdbd-conf slurmdbd-slurmdbd-conf - (default (file-append slurm "/etc/slurm/slurmdbd.conf")) - ) - (log-file slurmdbd-log-file - (default "/var/log/slurm/slurmdbd.log") - ) -) + (slurm slurm-configuration-slurm (default slurm)) + (slurmdbd-conf slurmdbd-slurmdbd-conf (default (file-append slurm "/etc/slurm/slurmdbd.conf"))) + (log-file slurmdbd-log-file (default "/var/log/slurm/slurmdbd.log"))) (define slurmdbd-service (match-lambda (($ slurm slurmdbd-conf log-file) - (list - (shepherd-service - (provision '(slurmdbd) ) - (documentation "Run slurmdbd.") - (requirement '(user-processes)) - (respawn? #t) - (start #~(make-forkexec-constructor - (list - #$(file-append slurm "/sbin/slurmdbd") - "-D" - ) - #:log-file #$log-file - #:user (passwd:uid (getpwnam "slurm")) - #:group (passwd:gid (getpwnam "slurm")) - )) - (stop #~(make-kill-destructor)) - ) - ) - ) - ) -) + (list + (shepherd-service + (provision '(slurmdbd)) + (documentation "Run slurmdbd.") + (requirement '(user-processes)) + (respawn? #t) + (start #~(make-forkexec-constructor + (list + #$(file-append slurm "/sbin/slurmdbd") + "-D" + ) + #:log-file #$log-file + #:user (passwd:uid (getpwnam "slurm")) + #:group (passwd:gid (getpwnam "slurm")) + )) + (stop #~(make-kill-destructor))))))) (define %slurmdbd-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 "/etc/slurm") - (mkdir-p "/var/log/slurm") - (mkdir-p "/var/lib/slurm-archives") - (mkdir-p "/var/lib/slurm") - (mkdir-p "/var/spool/slurmctld") - (touch "/var/log/slurm/slurmdbd.log") - (touch "/var/run/slurmdbd.pid") - (chown "/var/run/slurmdbd.pid" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) - (chown "/var/log/slurm" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) - (chown "/var/log/slurm/slurmdbd.log" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) - (chown "/var/lib/slurm-archives" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) - (chown "/var/lib/slurm" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) - (chown "/var/spool/slurmctld" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) - (chown "/etc/slurm" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) - (for-each (lambda (slurm-file) - (chown slurm-file (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) - (chmod slurm-file #o600) - )(find-files "/etc/slurm/")) - #t - ) - ) -) + #~(begin + (mkdir-p "/etc/slurm") + (mkdir-p "/var/log/slurm") + (mkdir-p "/var/lib/slurm-archives") + (mkdir-p "/var/lib/slurm") + (mkdir-p "/var/spool/slurmctld") + (touch "/var/log/slurm/slurmdbd.log") + (touch "/var/run/slurmdbd.pid") + (chown "/var/run/slurmdbd.pid" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) + (chown "/var/log/slurm" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) + (chown "/var/log/slurm/slurmdbd.log" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) + (chown "/var/lib/slurm-archives" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) + (chown "/var/lib/slurm" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) + (chown "/var/spool/slurmctld" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) + (chown "/etc/slurm" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) + (for-each (lambda (slurm-file) + (chown slurm-file (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) + (chmod slurm-file #o600) + )(find-files "/etc/slurm/")) + #t + )) (define slurmdbd-service-type - (service-type (name 'slurmdbd) + (service-type + (name 'slurmdbd) (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)) + ) ) - ) - (description "Run slurmdbd") - ) -) + (description "Run slurmdbd"))) ; ; slurmctld ; -(define-record-type* +(define-record-type* + slurmctld-configuration make-slurmctld-configuration slurmctld-configuration? - (slurm slurm-configuration-slurm - (default slurm) - ) - (slurmctld-conf slurmctld-slurmctld-conf - (default (file-append slurm "/etc/slurm/slurmctld.conf")) - ) - (log-file slurmctld-log-file - (default "/var/log/slurm/slurmctld.log") - ) -) + (slurm slurm-configuration-slurm (default slurm)) + (slurmctld-conf slurmctld-slurmctld-conf (default (file-append slurm "/etc/slurm/slurmctld.conf"))) + (log-file slurmctld-log-file (default "/var/log/slurm/slurmctld.log"))) (define slurmctld-service (match-lambda (($ slurm slurmctld-conf log-file) - (list - (shepherd-service - (provision '(slurmctld) ) - (documentation "Run slurmctld.") - (requirement '(user-processes)) - (respawn? #t) - (start #~(make-forkexec-constructor - (list - #$(file-append slurm "/sbin/slurmctld") - "-D" "-R" - "-f" #$slurmctld-conf - ) - #:log-file #$log-file - #:user (passwd:uid (getpwnam "slurm")) - #:group (passwd:gid (getpwnam "slurm")) - )) - (stop #~(make-kill-destructor)) - ) - ) - ) - ) -) + (list + (shepherd-service + (provision '(slurmctld)) + (documentation "Run slurmctld.") + (requirement '(user-processes)) + (respawn? #t) + (start #~(make-forkexec-constructor + (list + #$(file-append slurm "/sbin/slurmctld") + "-D" "-R" + "-f" #$slurmctld-conf + ) + #:log-file #$log-file + #:user (passwd:uid (getpwnam "slurm")) + #:group (passwd:gid (getpwnam "slurm")) + )) + (stop #~(make-kill-destructor))))))) (define %slurmctld-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 "/etc/slurm") - (mkdir-p "/var/log/slurm") - (mkdir-p "/var/lib/slurm-archives") - (mkdir-p "/var/lib/slurm") - (mkdir-p "/var/spool/slurmctld") - (touch "/var/log/slurm/slurmctld.log") - (touch "/var/run/slurmctld.pid") - (chown "/var/log/slurm" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) - (chown "/var/log/slurm/slurmctld.log" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) - (chown "/var/run/slurmctld.pid" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) - (chown "/var/lib/slurm-archives" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) - (chown "/var/lib/slurm" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) - (chown "/var/spool/slurmctld" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) - (chown "/etc/slurm" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) - (for-each (lambda (slurm-file) - (chown slurm-file (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) - (chmod slurm-file #o600) - )(find-files "/etc/slurm/")) - #t - ) - ) -) + #~(begin + (mkdir-p "/etc/slurm") + (mkdir-p "/var/log/slurm") + (mkdir-p "/var/lib/slurm-archives") + (mkdir-p "/var/lib/slurm") + (mkdir-p "/var/spool/slurmctld") + (touch "/var/log/slurm/slurmctld.log") + (touch "/var/run/slurmctld.pid") + (chown "/var/log/slurm" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) + (chown "/var/log/slurm/slurmctld.log" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) + (chown "/var/run/slurmctld.pid" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) + (chown "/var/lib/slurm-archives" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) + (chown "/var/lib/slurm" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) + (chown "/var/spool/slurmctld" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) + (chown "/etc/slurm" (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) + (for-each (lambda (slurm-file) + (chown slurm-file (passwd:uid (getpwnam "slurm")) (passwd:gid (getpwnam "slurm"))) + (chmod slurm-file #o600) + )(find-files "/etc/slurm/")) + #t )) (define slurmctld-service-type - (service-type (name 'slurmctld) + (service-type + (name 'slurmctld) (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)) + ) ) - ) - (description "Run slurmctld") - ) -) + (description "Run slurmctld"))) ; ; slurmd ; -(define-record-type* +(define-record-type* + slurmd-configuration make-slurmd-configuration slurmd-configuration? - (slurm slurm-configuration-slurm - (default slurm) + (slurm slurm-configuration-slurm (default slurm)) + (slurmd-conf slurmd-slurmd-conf (default (file-append slurm "/etc/slurm/slurm.conf"))) + (log-file slurmd-log-file (default "/var/log/slurm/slurmd.log")) + (slurmctld-host slurmd-slurmctld-host (default #f)); string slurmctld-host[:port] + (log-level slurmd-log-level (default #f)); string Verbose mode. Multiple -v's increase verbosity ) - (slurmd-conf slurmd-slurmd-conf - (default (file-append slurm "/etc/slurm/slurm.conf")) - ) - (log-file slurmd-log-file - (default "/var/log/slurm/slurmd.log") - ) - (slurmctld-host slurmd-slurmctld-host - (default #f) ; string slurmctld-host[:port] - ) - (log-level slurmd-log-level - (default #f) ; string Verbose mode. Multiple -v's increase verbosity - ) -) (define slurmd-service (match-lambda (($ slurm slurmd-conf slurmctld-host log-file log-level) - (list - (shepherd-service - (provision '(slurmd) ) - (documentation "Run slurmd.") - (requirement '( - user-processes - )) - (respawn? #t) - (start #~(make-forkexec-constructor - (list - #$(file-append slurm "/sbin/slurmd") - "-D" - #$@(if slurmctld-host - (list (string-append "--conf-server" slurmctld-host)) - (list (string-append "-f" slurmd-conf)) - ) - #$@(if log-level - (list log-level) - '() - ) - - ) - #:log-file #$log-file - )) - (stop #~(make-kill-destructor)) - ) - ) - ) - ) -) + (list + (shepherd-service + (provision '(slurmd)) + (documentation "Run slurmd.") + (requirement '( user-processes )) + (respawn? #t) + (start #~(make-forkexec-constructor + (list + #$(file-append slurm "/sbin/slurmd") + "-D" + #$@(if slurmctld-host + (list (string-append "--conf-server" slurmctld-host)) + (list (string-append "-f" slurmd-conf)) + ) + #$@(if log-level + (list log-level) + '() + ) + + ) + #:log-file #$log-file + )) + (stop #~(make-kill-destructor))))))) (define %slurmd-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 "/etc/slurm") - (mkdir-p "/var/log/slurm") - (mkdir-p "/var/lib/slurm-archives") - (mkdir-p "/var/lib/slurm") - (mkdir-p "/var/spool/slurmd") - (touch "/var/log/slurm/slurmd.log") - (touch "/var/run/slurmd.pid") - #t - ) - ) -) + #~(begin + (mkdir-p "/etc/slurm") + (mkdir-p "/var/log/slurm") + (mkdir-p "/var/lib/slurm-archives") + (mkdir-p "/var/lib/slurm") + (mkdir-p "/var/spool/slurmd") + (touch "/var/log/slurm/slurmd.log") + (touch "/var/run/slurmd.pid") + #t )) (define slurmd-service-type - (service-type (name 'slurmd) + (service-type + (name 'slurmd) (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)) + ) ) - ) - (description "Run slurmd") - ) -) + (description "Run slurmd"))) diff --git a/glicid/utils.scm b/glicid/utils.scm index a3f1d9b..debb1e2 100644 --- a/glicid/utils.scm +++ b/glicid/utils.scm @@ -6,11 +6,13 @@ #:use-module (glicid packages gcc) #:use-module (gnu packages commencement) #:use-module (gnu packages) - #:export (latest-version) - #:export (gcc11-instead-of-gcc) - #:export (transform-package) - #:export (instead-of) - ) + #:export ( + latest-version + gcc11-instead-of-gcc + transform-package + instead-of + touch + )) (define (latest-version v1 v2) (case (version-compare (package-version v1) (package-version v2)) ((>) v1) @@ -31,3 +33,6 @@ (define (instead-of package-a-spec package-b) (package-input-rewriting/spec `( (,package-a-spec . ,(const package-b))))) + +(define (touch filename) + (call-with-output-file file-name (const #t))