run slurmctld as user
Notice: also trying to run slurmd on execute nodes as user makes no sense because it breaks sbatch. Furthermore there is another necessary to run mpi jobs (just tried MpiDefault=none). I don't consider running slurmd as root a good idea, but there seems to be no other choice at the moment.
This commit is contained in:
2
play.yml
2
play.yml
@@ -51,4 +51,6 @@
|
|||||||
tags: docker
|
tags: docker
|
||||||
- name: "setup slurm test environment in docker containers"
|
- name: "setup slurm test environment in docker containers"
|
||||||
role: slurm
|
role: slurm
|
||||||
|
vars:
|
||||||
|
slurm_user: slurm # or root
|
||||||
tags: slurm
|
tags: slurm
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
container_privileged: False
|
container_privileged: False
|
||||||
|
slurm_user: slurm
|
||||||
slurm_log_path_ctld: /var/log/slurm/slurmctld.log
|
slurm_log_path_ctld: /var/log/slurm/slurmctld.log
|
||||||
slurm_log_path_d: /var/log/slurm/slurmd.log
|
slurm_log_path_d: /var/log/slurm/slurmd.log
|
||||||
slurm_log_path_sched: /var/log/slurm/slurmsched.log
|
slurm_log_path_sched: /var/log/slurm/slurmsched.log
|
||||||
|
@@ -14,16 +14,30 @@ RUN chown root:root /usr/local/sbin/entrypoint.sh && \
|
|||||||
|
|
||||||
ENTRYPOINT [ "/usr/local/sbin/entrypoint.sh" ]
|
ENTRYPOINT [ "/usr/local/sbin/entrypoint.sh" ]
|
||||||
|
|
||||||
|
ARG slurmuser=slurm
|
||||||
|
ENV slurmuser=${slurmuser}
|
||||||
|
|
||||||
|
RUN useradd -d /var/lib/slurm -m --no-log-init --system $slurmuser &&\
|
||||||
|
slurm-setuser -u $slurmuser -g $slurmuser -y
|
||||||
|
|
||||||
|
ENV SLURMCTLD_LOG_PATH="/var/log/slurm/slurmctld.log"
|
||||||
|
ENV SLURMD_LOG_PATH="/var/log/slurm/slurmd.log"
|
||||||
|
ENV SLURM_SCHED_LOG_PATH="/var/log/slurm/slurmsched.log"
|
||||||
|
|
||||||
FROM base as slurmd
|
FROM base as slurmd
|
||||||
|
|
||||||
RUN yum install -y slurm-slurmd && \
|
RUN yum install -y slurm-slurmd && \
|
||||||
yum clean all && rm -rf /var/cache/yum
|
yum clean all && rm -rf /var/cache/yum
|
||||||
|
|
||||||
CMD bash -c 'cat <({ su -s /bin/sh -c "munged -F" munge & slurmd -D & })'
|
CMD bash -c 'cat <({ su -s /bin/sh -c "munged -F" munge & \
|
||||||
|
slurmd -D 2>/dev/null 1>/dev/null & \
|
||||||
|
tail --retry --pid $! -f ${SLURMD_LOG_PATH} ${SLURM_SCHED_LOG_PATH} & })'
|
||||||
|
|
||||||
FROM base as slurmctld
|
FROM base as slurmctld
|
||||||
|
|
||||||
RUN yum install -y slurm-slurmctld && \
|
RUN yum install -y slurm-slurmctld && \
|
||||||
yum clean all && rm -rf /var/cache/yum
|
yum clean all && rm -rf /var/cache/yum
|
||||||
|
|
||||||
CMD bash -c 'cat <({ su -s /bin/sh -c "munged -F" munge & slurmctld -D & })'
|
CMD bash -c 'cat <({ su -s /bin/sh -c "munged -F" munge & \
|
||||||
|
su -s /bin/sh -c "slurmctld -D" ${slurmuser} 2>/dev/null 1>/dev/null & \
|
||||||
|
tail --retry --pid $! -f ${SLURMCTLD_LOG_PATH} ${SLURM_SCHED_LOG_PATH} & })'
|
||||||
|
@@ -14,6 +14,12 @@ RUN chown root:root /usr/local/sbin/entrypoint.sh && \
|
|||||||
|
|
||||||
ENTRYPOINT [ "/usr/local/sbin/entrypoint.sh" ]
|
ENTRYPOINT [ "/usr/local/sbin/entrypoint.sh" ]
|
||||||
|
|
||||||
|
ARG slurmuser=slurm
|
||||||
|
ENV slurmuser=${slurmuser}
|
||||||
|
|
||||||
|
RUN useradd -d /var/lib/slurm -m --no-log-init --system $slurmuser &&\
|
||||||
|
slurm-setuser -u $slurmuser -g $slurmuser -y
|
||||||
|
|
||||||
RUN yum install -y slurm-slurmctld && \
|
RUN yum install -y slurm-slurmctld && \
|
||||||
yum clean all && rm -rf /var/cache/yum
|
yum clean all && rm -rf /var/cache/yum
|
||||||
|
|
||||||
@@ -22,5 +28,5 @@ ENV SLURMD_LOG_PATH="/var/log/slurm/slurmd.log"
|
|||||||
ENV SLURM_SCHED_LOG_PATH="/var/log/slurm/slurmsched.log"
|
ENV SLURM_SCHED_LOG_PATH="/var/log/slurm/slurmsched.log"
|
||||||
|
|
||||||
CMD bash -c 'cat <({ su -s /bin/sh -c "munged -F" munge & \
|
CMD bash -c 'cat <({ su -s /bin/sh -c "munged -F" munge & \
|
||||||
slurmctld -D 2>/dev/null 1>/dev/null & \
|
su -s /bin/sh -c "slurmctld -D" ${slurmuser} 2>/dev/null 1>/dev/null & \
|
||||||
tail --retry --pid $! -f ${SLURMCTLD_LOG_PATH} ${SLURM_SCHED_LOG_PATH} & })'
|
tail --retry --pid $! -f ${SLURMCTLD_LOG_PATH} ${SLURM_SCHED_LOG_PATH} & })'
|
||||||
|
@@ -14,6 +14,12 @@ RUN chown root:root /usr/local/sbin/entrypoint.sh && \
|
|||||||
|
|
||||||
ENTRYPOINT [ "/usr/local/sbin/entrypoint.sh" ]
|
ENTRYPOINT [ "/usr/local/sbin/entrypoint.sh" ]
|
||||||
|
|
||||||
|
ARG slurmuser=slurm
|
||||||
|
ENV slurmuser=${slurmuser}
|
||||||
|
|
||||||
|
RUN useradd -d /var/lib/slurm -m --no-log-init --system $slurmuser &&\
|
||||||
|
slurm-setuser -u $slurmuser -g $slurmuser -y
|
||||||
|
|
||||||
RUN yum install -y slurm-slurmd && \
|
RUN yum install -y slurm-slurmd && \
|
||||||
yum clean all && rm -rf /var/cache/yum
|
yum clean all && rm -rf /var/cache/yum
|
||||||
|
|
||||||
|
@@ -82,6 +82,8 @@
|
|||||||
volumes: "{{default_mounts + ( item.extra_mounts | default([]) ) }}"
|
volumes: "{{default_mounts + ( item.extra_mounts | default([]) ) }}"
|
||||||
networks:
|
networks:
|
||||||
- name: "slurm"
|
- name: "slurm"
|
||||||
|
env:
|
||||||
|
slurmuser: "{{slurm_user}}"
|
||||||
image: "{{item.image}}"
|
image: "{{item.image}}"
|
||||||
state: started
|
state: started
|
||||||
detach: True
|
detach: True
|
||||||
|
@@ -32,6 +32,7 @@ CryptoType=crypto/munge
|
|||||||
#MaxStepCount=40000
|
#MaxStepCount=40000
|
||||||
#MaxTasksPerNode=128
|
#MaxTasksPerNode=128
|
||||||
MpiDefault=pmix
|
MpiDefault=pmix
|
||||||
|
# when running slurmd as user change to: MpiDefault=none
|
||||||
#MpiParams=ports=#-#
|
#MpiParams=ports=#-#
|
||||||
#PluginDir=
|
#PluginDir=
|
||||||
#PlugStackConfig=
|
#PlugStackConfig=
|
||||||
@@ -57,8 +58,9 @@ SlurmctldPort=6817
|
|||||||
SlurmdPidFile=/var/run/slurm/slurmd.pid
|
SlurmdPidFile=/var/run/slurm/slurmd.pid
|
||||||
SlurmdPort=6818
|
SlurmdPort=6818
|
||||||
SlurmdSpoolDir=/var/spool/slurm/d
|
SlurmdSpoolDir=/var/spool/slurm/d
|
||||||
SlurmUser=root
|
SlurmUser={{slurm_user}}
|
||||||
#SlurmdUser=root
|
SlurmdUser=root
|
||||||
|
# SlurmdUser=slurm -> sbatch does not work
|
||||||
#SrunEpilog=
|
#SrunEpilog=
|
||||||
#SrunProlog=
|
#SrunProlog=
|
||||||
StateSaveLocation=/var/spool/slurm/ctld
|
StateSaveLocation=/var/spool/slurm/ctld
|
||||||
@@ -130,7 +132,7 @@ AccountingStorageType=accounting_storage/none
|
|||||||
#AccountingStorageUser=
|
#AccountingStorageUser=
|
||||||
AccountingStoreJobComment=YES
|
AccountingStoreJobComment=YES
|
||||||
ClusterName=cluster
|
ClusterName=cluster
|
||||||
#DebugFlags=
|
#DebugFlags=Steps,TraceJobs
|
||||||
#JobCompHost=
|
#JobCompHost=
|
||||||
JobCompLoc=/tmp/jobcomp
|
JobCompLoc=/tmp/jobcomp
|
||||||
#JobCompPass=
|
#JobCompPass=
|
||||||
@@ -141,12 +143,9 @@ JobCompType=jobcomp/filetxt
|
|||||||
JobAcctGatherFrequency=30
|
JobAcctGatherFrequency=30
|
||||||
JobAcctGatherType=jobacct_gather/none
|
JobAcctGatherType=jobacct_gather/none
|
||||||
SlurmctldDebug=verbose
|
SlurmctldDebug=verbose
|
||||||
#SlurmctldLogFile=
|
|
||||||
SlurmctldLogFile={{slurm_log_path_ctld}}
|
SlurmctldLogFile={{slurm_log_path_ctld}}
|
||||||
SlurmdDebug=verbose
|
SlurmdDebug=verbose
|
||||||
#SlurmdLogFile=
|
|
||||||
SlurmdLogFile={{slurm_log_path_d}}
|
SlurmdLogFile={{slurm_log_path_d}}
|
||||||
#SlurmSchedLogFile=
|
|
||||||
SlurmSchedLogFile={{slurm_log_path_sched}}
|
SlurmSchedLogFile={{slurm_log_path_sched}}
|
||||||
#SlurmSchedLogLevel=
|
#SlurmSchedLogLevel=
|
||||||
#
|
#
|
||||||
|
Reference in New Issue
Block a user