diff --git a/roles/provision/tasks/main.yml b/roles/provision/tasks/main.yml index 3b71e4d40f287e6fefd0be5763aa05e8ec406b1a..27a2cbbd47537625c2e13efa54ff0132b0ab8c4a 100644 --- a/roles/provision/tasks/main.yml +++ b/roles/provision/tasks/main.yml @@ -4,5 +4,5 @@ sudo: true - name: provision cron job - cron: name=provision job={{ provision }} user=root minute=*/5 state=present + cron: name=provision job="/usr/bin/flock -x -n /tmp/provision.lck -c {{ provision }}" user=root minute=*/30 state=present sudo: true diff --git a/roles/provision/templates/provision.sh.j2 b/roles/provision/templates/provision.sh.j2 index 69483a265968419c02dc1715e55caa51821a54fe..d4082c8ae41b59824252396bbc178bdeaf7931ef 100644 --- a/roles/provision/templates/provision.sh.j2 +++ b/roles/provision/templates/provision.sh.j2 @@ -3,6 +3,8 @@ HOME_DIR={{ home_dir }} user_list=($(getent passwd | cut -d ":" -f1)) log_file="/root/slurm.log" +export PATH=$PATH:{{ slurm_dir }}/bin +sacctmgr=$( which sacctmgr ) for user in ${user_list[*]}; do {% if project_check is defined %} @@ -24,15 +26,15 @@ for user in ${user_list[*]}; do find=$(sacctmgr list cluster ${cluster} | grep ${cluster}) if [ -z "${find}" ]; then - su slurm -c "sacctmgr -i add cluster ${cluster}" || { echo "error to create cluster ${cluster}" >> ${log_file} && exit 1; } + su slurm -c "$sacctmgr -i add cluster ${cluster}" || { echo "error to create cluster ${cluster}" >> ${log_file} && exit 1; } fi find=$(sacctmgr list account ${account} | grep ${account}) if [ -z "${find}" ]; then - su slurm -c "sacctmgr -i add account ${account} Description=CVL Organization=monash cluster=${cluster}" || { echo "error to create account ${account}" >> ${log_file} && exit 1; } + su slurm -c "$sacctmgr -i add account ${account} Description=CVL Organization=monash cluster=${cluster}" || { echo "error to create account ${account}" >> ${log_file} && exit 1; } fi find=$(sacctmgr list user ${user} | grep ${user}) if [ -z "${find}" ]; then - su slurm -c "sacctmgr -i add user ${user} account=${account} cluster=${cluster}" || { echo "error to create user ${user}" >> ${log_file} && exit 1; } + su slurm -c "$sacctmgr -i add user ${user} account=${account} cluster=${cluster}" || { echo "error to create user ${user}" >> ${log_file} && exit 1; } fi fi fi diff --git a/roles/provision/vars/main.yml b/roles/provision/vars/main.yml index 2e084a92f49c7f6380db5cbc17aa8c2faff2f3cf..ed97d539c095cf1413af30cc23dea272095b97dd 100644 --- a/roles/provision/vars/main.yml +++ b/roles/provision/vars/main.yml @@ -1,2 +1 @@ --- - slurm_provision: /root/slurm_provision.sh