From 56acc243a35fa676f8470b7533d7c7bdc33e98e6 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 11 Dec 2020 15:08:13 +0100 Subject: [PATCH 1/2] add script to install CernVM-FS and configure access to EESSI on workernodes --- roles/packer/files/all.pkr.hcl | 4 ++++ roles/packer/files/compute_image_extra.sh | 3 +++ roles/packer/files/install_cvmfs_eessi.sh | 19 +++++++++++++++++++ 3 files changed, 26 insertions(+) create mode 100644 roles/packer/files/install_cvmfs_eessi.sh diff --git a/roles/packer/files/all.pkr.hcl b/roles/packer/files/all.pkr.hcl index e0f5da7d..5f400019 100644 --- a/roles/packer/files/all.pkr.hcl +++ b/roles/packer/files/all.pkr.hcl @@ -151,4 +151,8 @@ build { provisioner "shell" { script = "/home/citc/compute_image_extra.sh" } + + provisioner "shell" { + script = "/home/citc/install_cvmfs_eessi.sh" + } } diff --git a/roles/packer/files/compute_image_extra.sh b/roles/packer/files/compute_image_extra.sh index 59b6b00a..27bd331b 100644 --- a/roles/packer/files/compute_image_extra.sh +++ b/roles/packer/files/compute_image_extra.sh @@ -6,3 +6,6 @@ # e.g.: # sudo yum -y groupinstall "Development Tools" # sudo yum -y install cmake gcc-gfortran + +# to install CernVM-FS and configure access to EESSI, uncomment the line below: +# /home/citc/install_cvmfs_eessi.sh diff --git a/roles/packer/files/install_cvmfs_eessi.sh b/roles/packer/files/install_cvmfs_eessi.sh new file mode 100644 index 00000000..4448c8b1 --- /dev/null +++ b/roles/packer/files/install_cvmfs_eessi.sh @@ -0,0 +1,19 @@ +# +# Script to install CernVM-FS on CentOS 8 host, +# and add configuration to access the European Environment for Scientific Software Installations (EESSI) +# (see https://eessi.github.io/docs) +# + +set -eu + +# install CernVM-FS +sudo dnf install -y https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest.noarch.rpm +sudo dnf install -y cvmfs + +# install CernVM-FS configuration for EESSI +sudo dnf install -y https://github.com/EESSI/filesystem-layer/releases/download/v0.2.3/cvmfs-config-eessi-0.2.3-1.noarch.rpm + +# configure CernVM-FS (no proxy, 10GB quota for CernVM-FS cache) +sudo bash -c "echo 'CVMFS_HTTP_PROXY=DIRECT' > /etc/cvmfs/default.local" +sudo bash -c "echo 'CVMFS_QUOTA_LIMIT=10000' >> /etc/cvmfs/default.local" +sudo cvmfs_config setup From 9f8343ee13304c2ac8e54cc20232e2f850828465 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Mon, 14 Dec 2020 10:35:12 +0100 Subject: [PATCH 2/2] update install_cvmfs_eessi.sh script to also support aarch64 nodes --- roles/packer/files/install_cvmfs_eessi.sh | 24 +++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/roles/packer/files/install_cvmfs_eessi.sh b/roles/packer/files/install_cvmfs_eessi.sh index 4448c8b1..34783eac 100644 --- a/roles/packer/files/install_cvmfs_eessi.sh +++ b/roles/packer/files/install_cvmfs_eessi.sh @@ -7,8 +7,28 @@ set -eu # install CernVM-FS -sudo dnf install -y https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest.noarch.rpm -sudo dnf install -y cvmfs +if [[ $(arch) == "aarch64" ]]; then + # no package available for CernVM-FS for CentOS 8 and aarch64 systems, so building from source... + sudo dnf install -y cmake fuse-devel fuse3-devel fuse3-libs gcc-c++ libcap-devel libuuid-devel make openssl-devel patch python2 python3-devel unzip valgrind zlib-devel + curl -OL https://github.com/cvmfs/cvmfs/archive/cvmfs-2.7.5.tar.gz + tar xfz cvmfs-2.7.5.tar.gz + cd cvmfs*2.7.5 + mkdir build + cd build + cmake .. + make -j $(nproc) + sudo make install + + sudo dnf install -y attr autofs + sudo dnf install -y fuse + + # fuse3 must be around for building, but not at runtime (for CentOS 8); + # causes failure to mount CernVM-FS filesystems (FUSE3 version is too old?) + sudo dnf remove -y fuse3-libs fuse3-devel +else + sudo dnf install -y https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest.noarch.rpm + sudo dnf install -y cvmfs +fi # install CernVM-FS configuration for EESSI sudo dnf install -y https://github.com/EESSI/filesystem-layer/releases/download/v0.2.3/cvmfs-config-eessi-0.2.3-1.noarch.rpm