From 5808ac15b056f06bb5d7f98f6416daaf15650e03 Mon Sep 17 00:00:00 2001 From: Marcel Nijenhof Date: Sun, 31 May 2020 06:58:17 -0400 Subject: [PATCH] Basis slurm cluster in docker --- .gitignore | 3 ++ .gitsecret/keys/pubring.kbx | Bin 0 -> 3908 bytes .gitsecret/keys/pubring.kbx~ | Bin 0 -> 1473 bytes .gitsecret/keys/trustdb.gpg | Bin 0 -> 1200 bytes .gitsecret/paths/mapping.cfg | 1 + README.md | 75 ++++++++++++++++++++++++++++++ cal/Dockerfile | 19 ++++++++ cal/files/startup | 4 ++ docker-compose.yml | 21 +++++++++ slurm-base/Dockerfile | 40 ++++++++++++++++ slurm-base/files/munge.key.secret | Bin 0 -> 1897 bytes slurm-base/files/slurm.conf | 36 ++++++++++++++ slurm-base/files/slurm.repo | 5 ++ slurm-base/files/slurm.sh | 1 + slurm-base/files/startup | 4 ++ slurm-base/files/wait | Bin 0 -> 15368 bytes submit/Dockerfile | 18 +++++++ submit/files/startup | 4 ++ 18 files changed, 231 insertions(+) create mode 100644 .gitignore create mode 100644 .gitsecret/keys/pubring.kbx create mode 100644 .gitsecret/keys/pubring.kbx~ create mode 100644 .gitsecret/keys/trustdb.gpg create mode 100644 .gitsecret/paths/mapping.cfg create mode 100644 README.md create mode 100644 cal/Dockerfile create mode 100644 cal/files/startup create mode 100644 docker-compose.yml create mode 100644 slurm-base/Dockerfile create mode 100644 slurm-base/files/munge.key.secret create mode 100644 slurm-base/files/slurm.conf create mode 100644 slurm-base/files/slurm.repo create mode 100644 slurm-base/files/slurm.sh create mode 100644 slurm-base/files/startup create mode 100755 slurm-base/files/wait create mode 100644 submit/Dockerfile create mode 100644 submit/files/startup diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8d07b1c --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.gitsecret/keys/random_seed +!*.secret +slurm-base/files/munge.key diff --git a/.gitsecret/keys/pubring.kbx b/.gitsecret/keys/pubring.kbx new file mode 100644 index 0000000000000000000000000000000000000000..25f8ddae05814281c58fdfdf256f089e1d1ff42b GIT binary patch literal 3908 zcmai$2{hF0+sA)1W{h>lPUguBBKw+sUz3nETbp$(!)Q#1Y-3-CsE|w|AtA~hS)<0j z{_XT2OT;8a@gDVbp7(v;|2fZf&V9~x?)y5|xzBxl&*yss0DuO80PuNTJ9hv8fGb1V zbjRyB{}s@DFz9C%1^`e500#b;XN&)lrhHO0nL?l5a!0cmFEq0N008>9>Qi(1u-@Yn z{a3ww)9KwLN4JY|-U0xi{#P>)zytuGJOBWce(rz)$X_S_Cw|``8^jE`GNk4Rq5~@9 zYUM37^iwmx{*YtA*OtVxo^TP4u#(yb2U?tN*SsttaRUEDo?L)z$7EVCKixEJm6N=@ zF&>Lftf&iKaf`Q`tkp^3d>61n3%O4mrSYKvpF-*77igapXy|IpYJIgbShx}N(8snM z>j;gq$sf4Kiie8(C&ae)X%v3(Hi*{0LWePSAkUIiWJvRKUIxzYr!*Ca1!*;wJD39Z zTzpi%e?438Acb2R{u+Trele(CI11w+^98-l+Rp8$Fub-B?%TME((R)-z91IoGgLux zS_|>aq^CjNPNg&&zGcQv%Z&}>`-^pw(|3jTK40nVq@qtD&iPE7H?Lb=UIAD^0H~4) z05E=-U-JN7D49CpUEHu}Gfyu!Uk{u+TI8%J0qyVRf_EdJz1?n#qSXmFyqmAKpC`^& zD#-tg6BaAwi`D$A4fxlaCxFZ#>>xTonTsFt-$n}sACCZxq=7Qh)4{;BoDB4Ij9>^C zm<9yq1A)0C00w%N-#W0y(v4E3Qa!qjB;63gr#VYli5tnYKwnpd8 zfD*1qy9Pa@!(oqLY`v(ukOAu(PbT)73=&JVcFD#PQ;?vn9Fu(BfFgu0 z!Q=ZoC%5&*_zsj5d-JTqi!ZQiA77p-I&Ey5L@goY*)ra(kHlwrDR(?5ckW$R*B{NlAsWCr*b5Tq?0yp7)93@T$sJ8`yu%7~EFkSfweQ)(#%c5OH9bZ(zFq9#_%w zUHdfC{6`xJ@pFu%9bIH4EkJ|u!vOVvt9QeqADpi>FVyvR%9P&c3 z={=RfH41%4-N$f&6PANA!twf$4Cs<(<}ikb1jxGwr-|;!qWl2&&p9r`+_HP4(#Qde zCFv`0LX!vLVOA$&2vSkKPTG(I@l(ACAVmldhz>yii_n<v8OZ@R^Cv@O}nHQ-ZGKi5lpq-?r=uVZJnhcq9Peup0gTUQ&XuWptlsZaUzGOf`%yfqPdgx~wiwUNh)% z_L|T)ci@pbK(+HJR-bDC_%%_ly+qlamP1 zZH--{jY~s<`v5>6^*5mDwvPc#wsd4wuzzreL^vcATN%c332GlB_a~tFvS>P8Wls(D zK!)8l^rlvBAT>k&325+fwdzkg{2QRb%#cfh+e#o7pc}V`Dkvn^Y+N1Zw+)72B}b0> z8|2f^JubVg<&sV0@zQ3rpH#{B&~-K|`Zi1pBFh+$bi8M$7Y_akF(Aj1p;Gey})LWIiAQv_bz zM)QZ#@+UP2X_D`%?s1KAZ|L+sO0tKA#Z<5vXZ9$S?m2?{V?MCwG#U_k)g0jKu8VoA zPqkj%C{wV=tr;mcDNxrQaUrqg)m5B@5_! ze)V}9SgdmK`t7uVa1Cg<^_;+bYSh+_do*7VQ~Z*4p*v3VMDe^_+8{ZNKaP!^ja~+O zdL_EeajfUnK;S@@7!a^?iI&%k89!12f*CYwJNIBohLPBDTF#b^biU@A)eJm^Dgr*k zqvklZ^0MP&udD!rQ`3?5133K6c3-pEi0;8qL$?vAallVT1|DDRvss z6(n(-GU3fgPU_@%qUDnL5f{reH9tg|yU>}lLIr3d_j~Rq2J0FvaUxMg zwAeywf~M?N$|_@Wj$BC4!)A2^X7T918IXtNo{d5S&>mY74Vadb4ouI$_zzF|Eqx<57N9=PPV7rpsrYp{MQchy>DP*AHrfK+ zd@;%ZTb;*crW<#1y3kdx2wh{nJLO$XEb%2S6N{(la5J~(aKuMUd_PzgjcU^*+M1=S zXQ>hO4FpdUkKI2uGzT9Amun|T=4Fzr^w6OfiI>iC?jjaR3M7JZYTG&5Aidl2mlDXM zGFSZ++~EQPsyxDeGiHq!8CVk8$DUFkmqlj7o;#4EV4D_z!qxW4S)283p?h(OCTBTp zTx*zk}w%tY_@zh zHbIiN!25Lsv^L`tVtB*lSrx#wU9&8{n{tLZVulB0a&eC5=ybzO<+DpExhZ&0mbvV} z@6ADTe~_M=I=v%2g~14VEU|2QFIp%eZ`$`W1d(8{nw#1G!RV&&ZZGy~ zPh*Tx^1@Giu;~V&&+pinymBx=lvPlI`@8z?iN-&D1xvcBDt}__yNvscyU@dk6`4R7 z)(Kwa>rVZeS%xzHb|GdU;h?HpwoIwNgUtu2)uabLnSISzZZOPCzjCMU2e-QAhc5zZ zo+h?*=z@ZF8Y!FM1sQIMS0lZ2CwW7*}0vKMOp7>Zav%4H5y(GC##c3F2c z?qvWAj&C7XD73Vvpo>Q%oEm6nVLqvmg)l%nmuvFLR;8a(uK}%((S}*vC(56J>uh3q zB4j-y~KIyL@>vR1^5UReZ zMtRLQ1rv^z zy!neUY|~l&@Dm~1^eWxX8TmKDZ7+^ZlszjN%f~l}sZdiycp6<41$xi|C*zkq-LhXe zTl$DAHGF3p7+Ovq%Tv2~mN#^N#l3E$WV7#xUa5ou=Gl~W01?dQ8g_Z|9zM-FYx%Ot z#pn?s*>1D(TGF&ZdPEPO5QunXPKbiB7wmm2zPA6|nRm-LK}GJ*cNd>9@2oxKhD#Hz z4}Eb9-sjUR2I$vDjU2IFSLfa}qAH>Yr6xo*RL9tIZOH2$20x z_|t1KM7a}!UF;Wh~Hpg`URHbFUW6xT*a^e&9S;h zai&&WspByzTK8)iF#3@uRyNCihALdyKF-$qeGEaTEGqUYO<`BV;aViV?^FccjQ+OL zaNhC{iuhVwBUYn-8i@A^7u9sxHdYO0Q+by4**D#)?F%TPi|kb>d>DQ{z;`V8K~be& zH$AI{`eLnrJ&BIp=95*X0qn)BaJjoMh#oFFja8d zCZ?~bX}BVMp7X_i;$k(syL?Y1X7U=IZo;e2s)3O}^3&)y`a1ELT?BE%#UYrAgOEI&- zj@&8Hi5w**w-i5Ea-9^TsvFcnCHSmqH>LU4+P!v}4d9mBY|PB&R1yj{n>eV|>zV8C zTfJ^lRsC{bWUYSl$fI{rFG5V`FxGPHDRjqhaCL=q?nul!A@0U#@_c9&xBH{&m-l5j z%7XQ10q2aF-Z;l(h2$}nm){bDr@QZz&-KtP$#g2bE!7bRPdf>Z5WAjqNJlh&4NPoCMRnc)eFV2y^@+eNoMulDiDTKKK-KtY|x5DrNL z#y{I*w&3DQ{^0-EO`)bcLaaEcWL_rcgAR8s3-N~c;Ow?G#V1|3(ck>o97H0r@{fcE QyLTv+Cq93Y3Y_KrANsGISO5S3 literal 0 HcmV?d00001 diff --git a/.gitsecret/keys/pubring.kbx~ b/.gitsecret/keys/pubring.kbx~ new file mode 100644 index 0000000000000000000000000000000000000000..c44bd184dd4bec159d670c75c75febe0da62fa56 GIT binary patch literal 1473 zcmaiy4KUPs7{`DAeX(y?%4>U_r6jStm-qJ&n?w;VM>%h6v36H$bBjyD37eM^38jr> zd%@u>Ws8A<|Aii||6<;s71j!-%`Ye4RG^jcw zGIY0g$h`1w%|L-85~e7s2kl7kAg{oFa@T3KIi|0#&beV&TtaB2UvQVZ^@`eTKsq)% zm_kgitdE_frFu(5b{WbY(UUTW!o&eMQw(08#2Ajs+$gcOw;tZ}&cku^1n(;INJWG% zGRaHOb5W6l)Qd_>Y3{Nveamo6cJM>foqdXjv&_HCl8%Hs28L|6F-|PWt~7A?Hn+1?{0D7^Lo;=JniK-e(mjx#O?U~%qIuj>Zd0rfg%K;Dp>&N zk@U}gfLc@608S7sf_N}2oW=@ehY)w}3*!=_Xh9qrm&l;S=n}2CYz~cO8yUuCk$F)@ z0TB^oR)o!$HL%Y=PlFC3HbZD&rlN`XFKdyoj~2iPa3l_cM!{s1u^2QChERdQA=tMN zOf>;uF$!Nf@U}yP6gNrqqQ63>N{0fBZ(iiWwuLRLCYe-Q#Uva(pV^#zWe7_1qXhHr zhy^MR##Nvfr`aB*`DdqtI9TRH_O+N(r*#=b=Ei!i>xn9omR8?IXxFJxpQ zH>W>~(>f~jnvgP+l)|e8mOU#EaIq~y-)b95b}MWkXQvNVdRO-N7`w9RgRPFN^re@+ z-hN!xf<2*12Egf&bkOiOy|eD!ocwrhDb`DLGU)84vYU@sd_Pg%WUN~2Xwcqa#cm79 zj^10!yF!WN6p>R8w4&J5wboPjh9Ke3RdS?SYDVAJWoKmkz#acRa3P){qUS3wkPESE z!odO7*y_U(GD*2{ypJ*M<5*N0*}84Kp1qvJaXHYdWv)#>Q&WNRuMTE6@eU4o=X+!3 zqCC$FdEV*kVq$R1lHJs+OU`>zAFLPWRlpG&`l!x*<4w-yrh##_CXHi@*x)2$t`(Cy zs*EboaAI#^W;vqyLnCzRIv3G#Stl`sP$q~Dc~cP7uey7AfI{eTAE)@qa~nhPSM%F( zaRd{qdJ0tu|B2o-$ONGVp#kxKK$HC^P-+s?2Xvl5(^78t9~MuwJ>&xFa{ApGe^%O< zCpD||Fe@8II%PJ@TxTw}Eet=(lK!HQyFRmZMS0pF)K324Atgg2Eu!abqkGeQ*|5bt zB>Grb5n^Y*C1z!rpT;_z+!a=I4$ugh)MTMNqsAm?dP3sw_$V;^iG!Pun!&0@tLAa| z%fPy8HLGK)u`N;X$fBtnk5i=m{q5_MOJ4SFDbiV=@>he$=XT%|jftS-&XgQ?vA?-_ zH=Z$WdRou!(0k@eTvfKA(R*kYa=~}YNFSbDqQItzlp=U`V!l>_Zt@Gt^xPaNE}bf? z@$1u=Lr-dzrUF~ad)0&}@M529yhr!RuRwVgQZG6gb0iYH?!5Jq)9lf{Z7Y8PH+^To literal 0 HcmV?d00001 diff --git a/.gitsecret/keys/trustdb.gpg b/.gitsecret/keys/trustdb.gpg new file mode 100644 index 0000000000000000000000000000000000000000..48d82a3fb90acbac2c8b1a3dbadfae4c81440b39 GIT binary patch literal 1200 wcmZQfFGy!*W@Ke#Vql27ac^+aKR2n!v#AS4HxVH0GtK`>Hq)$ literal 0 HcmV?d00001 diff --git a/.gitsecret/paths/mapping.cfg b/.gitsecret/paths/mapping.cfg new file mode 100644 index 0000000..9efd278 --- /dev/null +++ b/.gitsecret/paths/mapping.cfg @@ -0,0 +1 @@ +slurm-base/files/munge.key:c1969b6105adce0e62d71877a77bb7a69762d1be8dae8d7ffe92156663f3ee22 diff --git a/README.md b/README.md new file mode 100644 index 0000000..9ef560b --- /dev/null +++ b/README.md @@ -0,0 +1,75 @@ +# Een mini slurm cluster als docker compose omgeving + +## Introductie + +Op dit moment zijn we aan het onderzoeken of we via docker containers +een slurm omgeving kunnen maken waarin de Deltares waqua en d-hydro +modelen kunnen draaien. + +Dit cluster is een POK van slurm in docker containers. +De doelen hiervan is: + + - Uitzoeken of slurm in docker kan draaien + - Uitzoeken of we de deltares modelen hierin kunnen draaien + - Kennis overdracht van slurm + +## Build instructies + +De submit en reken nodes zijn afhankelijk van een basis image slurm-base. +Hierin staan al een aantal files die op zowel reken nodes als submit node +aanwezig moet zijn. + +Deze moet eerst gebouwt worden met een docker commando: +``` +docker build -t slurm-base:latest slurm-base +``` + +Hierna kan het cluster gebouwt worden via: +``` +docker-compose build +``` + +En gestart worden via: +``` +docker-compose up -d +``` + +## Testen + +### De status van het cluster + +Met de volgende commando's kun je status informatie krijgen: + - sinfo + - squeue + - scontrol ping + - scontrol show nodes + - scontrol show partition + - scontrol show job + +### Een simpel shell script + +Plaats het volgende shell script ergens in '''/home''': +``` +#!/bin/sh + +hostname +sleep $(( ${RANDOM}%40+40 )) +``` + +Vervolgens kun je dit script met sbatch 8 keer submitten. +Wat je ziet is dat elke node 2 scripten start. + +De overige 4 blijven in de queue staan. + +## Todo +### Nu + + - Integratie mpi. + - Integratie waqua/d-hydro. + - Workshop schrijven. + +### Voor productie + + - Persistent maken job administratie. + - Redundante master nodes. + - Submit nodes die geen master node zijn. diff --git a/cal/Dockerfile b/cal/Dockerfile new file mode 100644 index 0000000..0d28b1a --- /dev/null +++ b/cal/Dockerfile @@ -0,0 +1,19 @@ +# Start with docker base +FROM slurm-base + +LABEL maintainer="Marcel Nijenhof " + +RUN "/usr/bin/yum" "-y" "install" \ + slurm-slurmd + +# +# Startup +# +ADD files/startup /sbin/startup +RUN chown root:root /sbin/startup +RUN chmod 700 /sbin/startup + + +HEALTHCHECK CMD ps -e | grep -q slurmd + +CMD ["/sbin/startup"] diff --git a/cal/files/startup b/cal/files/startup new file mode 100644 index 0000000..89fccba --- /dev/null +++ b/cal/files/startup @@ -0,0 +1,4 @@ +#!/bin/sh + +su -s /bin/sh munge -c /usr/sbin/munged +exec /opt/slurm/sbin/slurmd -D /opt/slurm/etc/slurm.conf diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..a201f0f --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,21 @@ +--- +version: '3.7' +services: + submit: + build: submit + hostname: submit + volumes: + - "/dev/log:/dev/log" + - "/var/lib/docker/bindmounts/test/home:/home" + cal01: + build: cal + hostname: cal01 + volumes: + - "/dev/log:/dev/log" + - "/var/lib/docker/bindmounts/test/home:/home" + cal02: + build: cal + hostname: cal02 + volumes: + - "/dev/log:/dev/log" + - "/var/lib/docker/bindmounts/test/home:/home" diff --git a/slurm-base/Dockerfile b/slurm-base/Dockerfile new file mode 100644 index 0000000..f6706c9 --- /dev/null +++ b/slurm-base/Dockerfile @@ -0,0 +1,40 @@ +# Start with docker base +FROM centos:7 + +LABEL maintainer="Marcel Nijenhof " + +# +# Install and update +# +ADD files/slurm.repo /etc/yum.repos.d/slurm.repo + +RUN "/usr/bin/yum" "-y" "update" + +RUN "/usr/bin/yum" "-y" "install" \ + https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm + +RUN "/usr/bin/yum" "-y" "install" \ + slurm + +RUN "/usr/sbin/groupadd" "-g" "1000" "marceln" +RUN "/usr/sbin/useradd" \ + "-c" "Marcel Nijenhof" \ + "-u" "1000" \ + "-g" "marceln" \ + "-G" "wheel" \ + "-p" '$6$noVPG3snbYoJqcpO$7ii6A0GJPLzKS1cwjypUkSSID8uHG2rA3plQQifLONh9gtHpq1QY08Wako7wzFE7jMbkbFSgB3a3xlhQkvTQ00' \ + "marceln" + +# +# Munge config +# +ADD files/munge.key /etc/munge/munge.key +RUN chown munge:munge /etc/munge/munge.key +RUN chmod 600 /etc/munge/munge.key + +# +# Slurm config +# +RUN mkdir /opt/slurm/etc /var/log/slurm/ +ADD files/slurm.conf /opt/slurm/etc/slurm.conf +ADD files/slurm.sh /etc/profile.d/slurm.sh diff --git a/slurm-base/files/munge.key.secret b/slurm-base/files/munge.key.secret new file mode 100644 index 0000000000000000000000000000000000000000..81d3c5b6d1284340f049a195f368febf8eb225f0 GIT binary patch literal 1897 zcmV-v2bTDS0Sp5PWi8e5rkctD2mp#e$SU@@hCNmtKyUhPTk^jju?#hM#Ktrj*P23z^1eNJU=cOOxjX@P8E42gy`^10(SMH zxX6~>*UX2I$W^P^5Ex9*&R+So-y-tJ8Bpg{8DV?@B$OJ3;7^MSn1)SOQzI=c#o3c= zpJ^4jZJLZU@TCouWpQ?2^blgM(!srsEPKARfn&)9H~tDAVR0m$_B3&NXk+Zt*yXqFr?_+|`sxh4K%sYW}g_nbE;Jt zn^k?iR9cN(Yr3{^F8L2WMnqgH*HiUyQ1>$M%>lw$>}W<{tdm2yl2L?LNa2h$OZd|gRad+mB&|m$ zsw>V`BF{XZ@mF5-JFJmp+%#tz063{ySY@VVPj?gHdW^K=JRVd36nK5wsz!ntU1ys{&LIDLkw_6MrCE{ib#+2eDv)HK z+Y-8fq?T+QYm~umxGyWd_-**t*lvX8i$AjGAVR5RfEo%0TEnA_|6w~Ng?fH7t-nhNeQ>bcJBL)as4rA{i->@?OeI*$WfLN^rf z2JqbVujijEXvz_pnc~VWm-JqupOP1vTe9vK=_R%=VsVH-LU3JV0V;1y{#VQQ)0q;l z6@@zF12E-g1$B9Q{0y}nYH{C$;O;?&?f|S~N-1t*?N%hPAEBwn#M=#<|O?5@HmZ7-JF9VftU3UDVBFneOd&)4Nwq8JmHuJ>& zyosZ%q?DvC&aRrDdCl~LDz+)nC-&KS@P;>nQ&_L1MM2Zm)!bfC9g z2ZShbrqrot0B3HyQJxcrU5s6B&u~E1oOen^#?hOK)frR5zvxd+P5aarK^{J(nC{!T z2@yVN&B=u?(3g*Yc}rsfY|v@cg8mx~-8;z|alM6pjb!t)N_Y$D*2Lo?AoW2({uT^N z{o5mKM{gdUEAyl+qJ66O_vh`3SSB94BdA#V0Tm6G6Tt+e2~O%gYN4XpXqD(idv++Asb==EyX*HU0L z1T{==z%RzepY#i32VM*?u7YE%oLm=zsI|i25XBo>=>TGM))vka9>1i7Rjzy z7AB&T2?sxuN9D8Ot^>>*ZXXX(JfJ&O_l-k}AGXxD&`ZlL7m)O#}_L zcCj0PM<92F%GFz4)V5ZT_>9L}C1$}D<1s4#uwH78;%ZcJMv%>!7%?pl4h*@L~ii|V>)@p{V{F4HkQ zrmR$&-s-Cimb>?$Rdf%E4v&-Ha6mL!)erlSe%K%KFW%T5+^^ZA4RJ<88-BV+^l6Z6 zIm+u;7{C1(7;_CsrxCMNCiL9-=0XEk7||td{hU}63Qwt_{+i)mUvb9*(z{KmAXy4= j927B@l*u2N#p4CsJ~dOI7}uYip!>t$EUO~3*zJ7Uq2sPu literal 0 HcmV?d00001 diff --git a/slurm-base/files/slurm.conf b/slurm-base/files/slurm.conf new file mode 100644 index 0000000..ce0a7b5 --- /dev/null +++ b/slurm-base/files/slurm.conf @@ -0,0 +1,36 @@ +# +# https://slurm.schedmd.com/slurm.conf.html +# +ClusterName=slurmcluster +SlurmctldHost=submit +# +AuthType=auth/munge +InactiveLimit=120 +JobCompType=jobcomp/filetxt +JobCompLoc=/var/log/slurm/jobcomp +ProctrackType=proctrack/linuxproc +KillWait=30 +MaxJobCount=10000 +MinJobAge=3600 +ReturnToService=0 +SchedulerType=sched/backfill +SelectType=select/cons_res +SelectTypeParameters=CR_CPU +SlurmctldLogFile=/var/log/slurm/slurmctld.log +SlurmdLogFile=/var/log/slurm/slurmd.log +SlurmctldPort=7002 +SlurmdPort=7003 +SlurmdSpoolDir=/var/spool/slurmd.spool +StateSaveLocation=/var/spool/slurm.state +SwitchType=switch/none +TmpFS=/tmp +WaitTime=30 +# +# Node Configurations +# +NodeName=cal01 CPUs=2 RealMemory=2000 TmpDisk=64000 +NodeName=cal02 CPUs=2 RealMemory=2000 TmpDisk=64000 +# +# Partition Configurations +# +PartitionName=queue Nodes=ALL Default=YES diff --git a/slurm-base/files/slurm.repo b/slurm-base/files/slurm.repo new file mode 100644 index 0000000..106c9aa --- /dev/null +++ b/slurm-base/files/slurm.repo @@ -0,0 +1,5 @@ +[slurm] +name=Slurm CentOS7 +baseurl=https://marceln.org/CentOS7 +gpgcheck=0 +enabled=1 diff --git a/slurm-base/files/slurm.sh b/slurm-base/files/slurm.sh new file mode 100644 index 0000000..a67abef --- /dev/null +++ b/slurm-base/files/slurm.sh @@ -0,0 +1 @@ +PATH=${PATH}:/opt/slurm/bin diff --git a/slurm-base/files/startup b/slurm-base/files/startup new file mode 100644 index 0000000..d856f31 --- /dev/null +++ b/slurm-base/files/startup @@ -0,0 +1,4 @@ +#!/bin/sh + +su -s /bin/sh munge -c /usr/sbin/munged +exec /opt/slurm/sbin/slurmctld -D /opt/slurm/etc/slurm.conf diff --git a/slurm-base/files/wait b/slurm-base/files/wait new file mode 100755 index 0000000000000000000000000000000000000000..e21a71b610a649abf6ca14006f23102c4ff8e815 GIT binary patch literal 15368 zcmeHOUu;`f8ULI#jZ2H;&~1dKTHUFY+^o5Y(OQav>VjZph6SNLEpLG&#~_k zG*ko<++P%bKIeSD^L^(#=iYO!?>XP-A0DXl`3R_^BgCnEFsiehPa=OeG>D?qOWP?* zyQ!77644f&=O8K!$f-IfAJQ*+^}@R(<(KLlOOU%o4-y`-WP9s?hmOokAtVJIP3AT5 zS4oq!4{}8eKtiu#FC-R2VozkJ@F1&s9Gjrw@PbDi9^`ImcSt07oMc`|cp>3IUKe|i zh$lCj|Cgk`C5b2Gad96KF&tU3ll(m>?F&k~Aip3yNbsIov6JlQCk4Vj3VWNxr7Z1( zlq7Xz(&IgcJ2J`kOgcL=+dkXd)82E~DCUeV?Gx9}x`QXiv`aj`5L)*60V18p2Kd8pEBw31UIvX zp10CA6*H++p5k%Nju&mKV8^Gebe0B(hx(4iyNoWQo8s}w>0DMy=}Qn%12xoEm23mQQ`}Ps`4>rJb3Wn!Gi}69z1yP@ZZG; zO%H!)&cEk3zuj=VgUEd8ie0C!oAXQlMeUgCzSTjb_Ahr3HSLL#+Ry1JF1vkGDW&%R zhSU70aQnJa%A9|%h4st}U)#51^$$v^H~Gzv0fZ+nw7 z)Xj;7#ff!g_Tvq$|II&ZadoZUES1fxt4B@WTjq^5ySY+BqtxK$v%lw`@O2Q;%+4{h zw6gkwQtGXSy9SZ(?Bd7lvHrWStoy*}*fT?=U&o#vD&32X#Y!K=P7hz$|NVnRW9Ef+ zmZydftZ*N!=GK%luYOc-?}_}jY0r6X-Eir{;nKb1rMofp!0*iYMW6ZD?`Q6C|2%s( z_NCa_*mJRXwa;vidyb{<*Gf-%@ZiCN2M-=Rc<|uCgNOfT_-fwf5&2r{ALj>l{qDM~ z6hDMU%Sv4$qH|@X&JfW;S*Z*Wjl8ea6(YLwzEXa9S;+5M8NL@r$u}GHweD#2FZi7I zjrv`FSt)*)rsIu4eizzFM7zsM>38!)w2zC3=;gagaTx`I1A&$&o3=miKTk(@J>GU` z-y@vOcG!o7yGlK*>kH`Dt<2@03SKTNmE!z?K=6BY{ehP6*7pZO7q;{V!ry5y1D)U6 zY6g1e8wUf?Y@jz5=!^xzeSuJ4prtPm> zBhAi!&X7p#0fpRw#>)QbPfPk8(f^#JvCp|x(%7fGOVTZ}uNnKhQU2F8m17luz2gU- z3ol913HF!|F(~4Ft*Qk$cj|XAG|8|InFgY z`ChsxWv_`u%%z@&$wb2CC{@OID=kX>1kbFHX*dD{ld$edXo;X#t2U~0ooE$wpH1I`I zT(8TYMjp4dd3$vd*Q3<2mG_o6(~kAuVRTIQI=&ZDRwg}}Mg2ALv?7(W5D#q@b1PE0 z&Tq=~&Q7@Nxh(vrH`B@Y5^wcj{8D6XyzZ~>I9B)5ceUI~zvwYh>*vP(TH8-;jZCb~ z`}g-9`mFVz^d0(aMPg1yajIw+Y-^m1bkOlcFKtL4Yk|Wq@*UZGsgH#I+JWq zCrPKK_!2OZbJ^nDv?J|;Q}WeRp~zQ&R+B`$Kt>^zv6vv=@)?^=rfo9p)T~X$L^_)$ zqmWBlwnav2Dn3!Lrc?2$WMMt!FydCBV9hxUd{540t?6`vjLDp>KO6&2W#h#n8HwEV zbSle*XpCXmb|F1JW2cIGAl@f<-r;*X<`bM_!ucl5a{%uDz)qQSz{j~Aoab?$C2^mr z*z4ji%lV&WsgQqHt%jS==T+`0m4kiEzkZo8;XmeMjA!5ok&XfQn4iPKpA|)%D*+$Z z(}0{G0Uz`IMd4$92i);HL8Rwa@G+k*3m@wQ_zykEXNmM&jWp)#vhWdqxBtMG<@^=+ zSRVu>&{!Y9zPtUl@cX1ftT&Q~A z0MkEr6951J literal 0 HcmV?d00001 diff --git a/submit/Dockerfile b/submit/Dockerfile new file mode 100644 index 0000000..9a1b2b9 --- /dev/null +++ b/submit/Dockerfile @@ -0,0 +1,18 @@ +# Start with docker base +FROM slurm-base + +LABEL maintainer="Marcel Nijenhof " + +RUN "/usr/bin/yum" "-y" "install" \ + slurm-slurmctld \ + slurm-torque + +# +# Startup +# +ADD files/startup /sbin/startup +RUN chown root:root /sbin/startup +RUN chmod 700 /sbin/startup + +HEALTHCHECK CMD /opt/slurm/bin/scontrol ping | grep -q UP +CMD ["/sbin/startup"] diff --git a/submit/files/startup b/submit/files/startup new file mode 100644 index 0000000..d856f31 --- /dev/null +++ b/submit/files/startup @@ -0,0 +1,4 @@ +#!/bin/sh + +su -s /bin/sh munge -c /usr/sbin/munged +exec /opt/slurm/sbin/slurmctld -D /opt/slurm/etc/slurm.conf