From 1de86ae1a8fd68cb8dd3244623ad9f3f2a41c54f Mon Sep 17 00:00:00 2001 From: Stefano Alberto Russo <stefano.russo@gmail.com> Date: Fri, 1 May 2020 17:28:48 +0200 Subject: [PATCH] Added support for shared slurmtestuser home folder. --- services/base/entrypoint.sh | 2 +- services/base/prestartup.py | 4 +++- services/slurmbase/Dockerfile | 3 +++ services/slurmbase/prestartup_slurmbase.sh | 8 ++++++++ .../slurmclustermaster/prestartup_slurmclustermaster.sh | 4 ++++ 5 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 services/slurmbase/prestartup_slurmbase.sh diff --git a/services/base/entrypoint.sh b/services/base/entrypoint.sh index b3c80a5..fe984ac 100644 --- a/services/base/entrypoint.sh +++ b/services/base/entrypoint.sh @@ -88,7 +88,7 @@ fi #--------------------- if [ "x$SAFEMODE" == "xFalse" ]; then - echo "[INFO] Executing prestartup scripts (current + parents):" + echo "[INFO] Executing prestartup scripts (parents + current):" python /prestartup.py else echo "[INFO] Not executing prestartup scripts as we are in safemode" diff --git a/services/base/prestartup.py b/services/base/prestartup.py index 82eb0ec..1bcfd45 100644 --- a/services/base/prestartup.py +++ b/services/base/prestartup.py @@ -34,7 +34,9 @@ def shell(command, interactive=False): prestartup_scripts_path='/prestartup' def sorted_ls(path): mtime = lambda f: os.stat(os.path.join(path, f)).st_mtime - return list(sorted(os.listdir(path), key=mtime)) + file_list = list(sorted(os.listdir(path), key=mtime)) + file_list.reverse() + return file_list for item in sorted_ls(prestartup_scripts_path): if item.endswith('.sh'): diff --git a/services/slurmbase/Dockerfile b/services/slurmbase/Dockerfile index 18e4791..16126b7 100755 --- a/services/slurmbase/Dockerfile +++ b/services/slurmbase/Dockerfile @@ -28,3 +28,6 @@ RUN useradd slurmtestuser RUN mkdir -p /home/slurmtestuser/.ssh RUN cat /rosetta/.ssh/id_rsa.pub >> /home/slurmtestuser/.ssh/authorized_keys RUN chown -R slurmtestuser:slurmtestuser /home/slurmtestuser + +# Add prestartup +COPY prestartup_slurmbase.sh /prestartup/ \ No newline at end of file diff --git a/services/slurmbase/prestartup_slurmbase.sh b/services/slurmbase/prestartup_slurmbase.sh new file mode 100644 index 0000000..1c2fb84 --- /dev/null +++ b/services/slurmbase/prestartup_slurmbase.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -e + +# "Deactivate" local slurmtestuser home +mv /home/slurmtestuser /home_slurmtestuser_vanilla + +# Link slurmtestuser against the home in the shared folder (which will be setup by the master node) +ln -s /shared/home_slurmtestuser /home/slurmtestuser diff --git a/services/slurmclustermaster/prestartup_slurmclustermaster.sh b/services/slurmclustermaster/prestartup_slurmclustermaster.sh index e1e24db..7f5354c 100644 --- a/services/slurmclustermaster/prestartup_slurmclustermaster.sh +++ b/services/slurmclustermaster/prestartup_slurmclustermaster.sh @@ -1,4 +1,8 @@ #!/bin/bash set -e +# Generic rosetta user shared folder mkdir -p /shared/rosetta && chown rosetta:rosetta /shared/rosetta + +# Shared home for slurmtestuser to simulate a shared home folders filesystem +cp -a /home_slurmtestuser_vanilla /shared/home_slurmtestuser -- GitLab