about summary refs log tree commit diff
path: root/gn/deploy
diff options
context:
space:
mode:
authorEfraim Flashner2020-12-01 21:15:21 +0200
committerEfraim Flashner2020-12-01 21:15:21 +0200
commit1d456b37cabefe6caa94cab22e952622c0d26c1f (patch)
treeaf89d0e45062d2a3776bb629710f617e03118399 /gn/deploy
parent091e1391ffffa54431a224f38c3d64a9a1f63ce2 (diff)
downloadguix-bioinformatics-1d456b37cabefe6caa94cab22e952622c0d26c1f.tar.gz
octopus: add slurm services
Diffstat (limited to 'gn/deploy')
-rw-r--r--gn/deploy/octopus.scm98
1 files changed, 91 insertions, 7 deletions
diff --git a/gn/deploy/octopus.scm b/gn/deploy/octopus.scm
index f707462..9d1e7d3 100644
--- a/gn/deploy/octopus.scm
+++ b/gn/deploy/octopus.scm
@@ -2,10 +2,70 @@
 
 (use-modules (gnu)
              (gn services science)
-             )
-(use-service-modules ssh web)
+             (gn packages parallel))
+(use-service-modules networking ssh web)
 (use-package-modules certs tmux screen vim)
 
+(define %slurm.conf
+  (plain-file "slurm.conf"
+              (string-append
+"ClusterName=linux
+ControlMachine=octopus
+
+SlurmUser=slurm
+#SlurmdUser=root
+SlurmctldPort=6817
+SlurmdPort=6818
+AuthType=auth/munge
+StateSaveLocation=/var/spool/slurmd/ctld
+SlurmdSpoolDir=/var/spool/slurmd
+SwitchType=switch/none
+MpiDefault=none
+SlurmctldPidFile=/var/run/slurm/slurmctld.pid
+SlurmdPidFile=/var/run/slurm/slurmd.pid
+ProctrackType=proctrack/pgid
+ReturnToService=1
+
+# TIMERS
+InactiveLimit=0
+MinJobAge=300
+KillWait=30
+#
+
+# LOGGING
+SlurmctldDebug=3
+SlurmctldLogFile=/var/log/slurm/slurmctld.log
+SlurmdDebug=3
+SlurmdLogFile=/var/log/slurm/slurmd.log
+JobCompType=jobcomp/none
+
+# COMPUTE NODES
+NodeName=octopus CPUs=1 Boards=1 SocketsPerBoard=1 CoresPerSocket=1 ThreadsPerCore=1 RealMemory=1024
+PartitionName=debug Nodes=ALL Default=YES MaxTime=INFINITE State=UP")))
+
+(define %cgroup.conf
+  (plain-file "cgroup.conf"
+              (string-append
+"###
+# Slurm cgroup support configuration file
+###
+CgroupAutomount=yes
+ConstrainCores=yes
+#")))
+
+(define %slurmdbd.conf
+  (plain-file "slurmdbd.conf"
+              (string-append
+"AuthType=auth/munge
+AuthInfo=/var/run/munge/munge.socket.2
+DbdHost=localhost
+StorageHost=localhost
+StorageType=accounting_storage/none
+StorageUser=slurm
+PidFile=/var/run/slurm/slurmdbd.pid
+LogFile=/var/log/slurm/slurmdbd.log
+SlurmUser=slurm")))
+
 (operating-system
   (host-name "octopus")
   (timezone "Etc/UTC")
@@ -34,7 +94,9 @@
               ;(file-system
               ;  (device "octopus01:/home")
               ;  (mount-point "/home")
-              ;  (type "nfs"))
+              ;  (type "nfs")
+              ;  (mount? #f)    ; is this necessary?
+              ;  (check? #f))
               )
               %base-file-systems))
 
@@ -48,13 +110,13 @@
              (comment "Efraim Flashner")
              (uid 1000)
              (group "users")
-             (supplementary-groups '("wheel")))
+             (supplementary-groups '("wheel" "kvm")))
            (user-account
              (name "wrk")
              (comment "Pjotr Prins")
              (uid 502)
              (group "users")
-             (supplementary-groups '("wheel")))
+             (supplementary-groups '("wheel" "kvm")))
            %base-user-accounts))
 
 
@@ -75,8 +137,30 @@
               ;    (term "vt100")
               ;    (tty "ttyS0")))
 
-              (service openssh-service-type)
+              (service openssh-service-type
+                       (openssh-configuration
+                         (authorized-keys
+                           `(("efraimf" ,(local-file "/home/efraimf/.ssh/id_rsa.pub"))))))
 
               (service munge-service-type)
-              )
+              (service slurmd-service-type
+                       (slurm-configuration
+                         (package slurm-18.08)))
+              (service slurmdbd-service-type
+                       (slurm-configuration
+                         (package slurm-18.08)
+                         (run-slurmdbd? #t)))
+              (service slurmctld-service-type
+                       (slurm-configuration
+                         (package slurm-18.08)
+                         (run-slurmctld? #t)))
+
+              ;; Some slurm configuration files
+              (simple-service 'slurm-conf etc-service-type
+                              `(("slurm/slurm.conf" ,%slurm.conf)
+                                ("slurm/cgroup.conf" ,%cgroup.conf)
+                                ("slurm/slurmdbd.conf" ,%slurmdbd.conf)))
+
+              (service dhcp-client-service-type)
+              (service openntpd-service-type))
             %base-services)))