diff --git a/roles/slurm-common/files/slurmctld.prolog b/roles/slurm-common/files/slurmctld.prolog new file mode 100644 index 0000000000000000000000000000000000000000..564491c1b62a808d32b9a04820cdd01c0214635e --- /dev/null +++ b/roles/slurm-common/files/slurmctld.prolog @@ -0,0 +1,16 @@ +#!/bin/sh + +JOBID=$SLURM_JOB_ID +if [ ! -z $SLURM_ARRAY_JOB_ID ]; then + JOBID="${SLURM_ARRAY_JOB_ID}_${SLURM_ARRAY_TASK_ID}" +fi +if [ "$JOBID" == "" ]; then + exit 0 +fi +CPULINE=$(scontrol show job $JOBID -dd 2>&1) +if [ $? -ne 0 ]; then + exit 0 +fi +COMMENT=$(echo -e "$CPULINE" | perl -n -e'/.*Nodes=([\w\-\[\],]+) CPU_IDs=([\w\-,]+) Mem=(\w+) GRES=([\w:\(\)\-,]*).*/ && print "|$1|$2|$4|;"') +UPDATE=$(scontrol update job=$JOBID admincomment="$COMMENT" 2>&1) +exit 0 diff --git a/roles/slurm-common/tasks/main.yml b/roles/slurm-common/tasks/main.yml index c6bc258cc56a893b4e642e0ee4a67f8afd5aadc9..ef41010242c6063d09948d359faf96853a0f36ff 100644 --- a/roles/slurm-common/tasks/main.yml +++ b/roles/slurm-common/tasks/main.yml @@ -140,6 +140,10 @@ template: src=slurm.epilog.j2 dest=/opt/slurm/etc/slurm.epilog mode=755 become: true +- name: install slurmctld prolog + file: src=files/slurmctld.prolog dest=/opt/slurm-latest/etc/slurmctld.prolog mode=755 + become: true + when: inventory_hostname in groups.ManagementNodes - name: setup envirnment variables template: src=slurm_setup.sh.j2 dest=/etc/profile.d/slurm_setup.sh