diff --git a/glicid/services/file-systems.scm b/glicid/services/file-systems.scm new file mode 100644 index 0000000..c123f3d --- /dev/null +++ b/glicid/services/file-systems.scm @@ -0,0 +1,70 @@ +(define-module (glicid services file-systems) + #:use-module (gnu services) + #:use-module (gnu services shepherd) + #:use-module (guix) + #:use-module (guix records) + #:use-module (ice-9 match) + #:use-module (gnu packages file-systems) + #:export ( + %default-autofs-conf + autofs-configuration + 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 make-autofs-configuration + autofs-configuration? + (config-file autofs-config-file + (default %default-autofs-conf) + ) + (log-file autofs-log-file + (default "/var/log/autofs.log") + ) +) + +(define autofs-service + (match-lambda + (($ config-file log-file) + (list + (shepherd-service + (provision '(autofs) ) + (documentation "Run autofs.") + (requirement '(user-processes)) + (respawn? #f) + (one-shot? #t) + (start #~(make-forkexec-constructor + (list + #$(file-append autofs "/sbin/automount") + "-d" "-f" + ) + #:log-file #$log-file + )) + (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") + ) +) + diff --git a/glicid/services/parallel.scm b/glicid/services/parallel.scm new file mode 100644 index 0000000..7b32347 --- /dev/null +++ b/glicid/services/parallel.scm @@ -0,0 +1,169 @@ +(define-module (glicid services munged) + #:use-module (gnu services) + #:use-module (gnu services shepherd) + #:use-module (guix) + #:use-module (guix records) + #:use-module (ice-9 match) + #:use-module (gnu packages parallel) + #:export ( + munged-configuration + munged-configuration? + munged-service + munged-service-type + ) +) + +; +; Munged +; +(define-record-type* + munged-configuration make-munged-configuration + munged-configuration? + (key-file munged-key-file + (default "/etc/munge/munged.key") + ) + (log-file munged-log-file + (default "/var/log/munged.log") + ) +) + +(define munged-service + (match-lambda + (($ key-file log-file) + (list + (shepherd-service + (provision '(munged) ) + (documentation "Run munged.") + (requirement '(user-processes)) + (respawn? #f) + (one-shot? #t) + (start #~(make-forkexec-constructor + (list + #$(file-append munge "/sbin/munged") + "-F" + "--key-file=" #$key-file + ) + #:log-file #$log-file + )) + (stop #~(make-kill-destructor)) + ) + ) + ) + ) +) + +(define munged-service-type + (service-type (name 'munged) + (extensions + (list ( + service-extension + shepherd-root-service-type + munged-service + )) + ) + (description "Run munged") + ) +) + +; +; slurmdbd +; +(define-record-type* + slurmdbd-configuration make-slurmdbd-configuration + slurmdbd-configuration? + (slurmdbd-conf slurmdbd-slurmdbd-conf + (default "/etc/slurm/slurmdbd.conf") + ) + (log-file slurmdbd-log-file + (default "/var/log/slurmdbd.log") + ) +) + +(define slurmdbd-service + (match-lambda + (($ slurmdbd-conf log-file) + (list + (shepherd-service + (provision '(slurmdbd) ) + (documentation "Run slurmdbd.") + (requirement '(user-processes)) + (respawn? #f) + (one-shot? #t) + (start #~(make-forkexec-constructor + (list + #$(file-append slurm "/sbin/slurmdbd") + "-D" + ) + #:log-file #$log-file + )) + (stop #~(make-kill-destructor)) + ) + ) + ) + ) +) + +(define slurmdbd-service-type + (service-type (name 'slurmdbd) + (extensions + (list ( + service-extension + shepherd-root-service-type + slurmdbd-service + )) + ) + (description "Run slurmdbd") + ) +) + +; +; slurmctld +; +(define-record-type* + slurmctld-configuration make-slurmctld-configuration + slurmctld-configuration? + (slurmctld-conf slurmctld-slurmctld-conf + (default "/etc/slurm/slurmctld.conf") + ) + (log-file slurmctld-log-file + (default "/var/log/slurmctld.log") + ) +) + +(define slurmctld-service + (match-lambda + (($ slurmctld-conf log-file) + (list + (shepherd-service + (provision '(slurmctld) ) + (documentation "Run slurmctld.") + (requirement '(user-processes)) + (respawn? #f) + (one-shot? #t) + (start #~(make-forkexec-constructor + (list + #$(file-append slurm "/sbin/slurmctld") + "-D" "-R" + "-f" #$slurmctld-conf + ) + #:log-file #$log-file + )) + (stop #~(make-kill-destructor)) + ) + ) + ) + ) +) + +(define slurmctld-service-type + (service-type (name 'slurmctld) + (extensions + (list ( + service-extension + shepherd-root-service-type + slurmctld-service + )) + ) + (description "Run slurmctld") + ) +)