From 153f323f1e0296bbf4397378bb81b6dba9fff4d1 Mon Sep 17 00:00:00 2001 From: = <=> Date: Tue, 28 Jun 2022 14:57:23 +0100 Subject: [PATCH 01/11] Adding Ceph packages For DisTRaC to work, these ceph_packages need to be installed. --- group_vars/compute.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/group_vars/compute.yml b/group_vars/compute.yml index 550ce43f..9bab0175 100644 --- a/group_vars/compute.yml +++ b/group_vars/compute.yml @@ -16,6 +16,18 @@ mpi_packages: - openmpi aws: [] +ceph_packages: + - ceph + - ceph-base + - ceph-common + - ceph-osd + - ceph-mon + - ceph-mgr + - ceph-mds + - ceph-radosgw + - ceph-volume + - lvm2 + monitoring_role: client ldap_hostname: "{{ ansible_local.citc.ldap_hostname }}" From c76bff3b81e45c7a0c7348863af17b6029d99e34 Mon Sep 17 00:00:00 2001 From: = <=> Date: Tue, 28 Jun 2022 14:59:28 +0100 Subject: [PATCH 02/11] Added Ceph version Quincy is the latest version of Ceph this will be end of life in 2024-06-01 --- group_vars/compute.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/group_vars/compute.yml b/group_vars/compute.yml index 9bab0175..4886a243 100644 --- a/group_vars/compute.yml +++ b/group_vars/compute.yml @@ -28,6 +28,8 @@ ceph_packages: - ceph-volume - lvm2 +ceph_version: quincy + monitoring_role: client ldap_hostname: "{{ ansible_local.citc.ldap_hostname }}" From 725c6f8de099f646284e520b4db1b511705cac6d Mon Sep 17 00:00:00 2001 From: = <=> Date: Wed, 29 Jun 2022 09:19:45 +0100 Subject: [PATCH 03/11] Ceph Role This role adds the ceph repos for the architecture of the host and source files. Then installs the relevant ceph packages as specified in the group vars. --- roles/ceph/tasks/main.yaml | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 roles/ceph/tasks/main.yaml diff --git a/roles/ceph/tasks/main.yaml b/roles/ceph/tasks/main.yaml new file mode 100644 index 00000000..3b393688 --- /dev/null +++ b/roles/ceph/tasks/main.yaml @@ -0,0 +1,37 @@ +--- + +- name: Add Ceph {{ ansible_architecture }} repository + yum_repository: + name: ceph + description: Ceph packages for {{ ansible_architecture }} + baseurl: https://download.ceph.com/rpm-{{ ceph_version }}/el$releasever/{{ ansible_architecture }} + enabled: 1 + priority: 2 + gpgcheck: 1 + gpgkey: https://download.ceph.com/keys/release.asc + +- name: Add Ceph noarch repository + yum_repository: + name: ceph-noarch + description: Ceph noarch packages + baseurl: https://download.ceph.com/rpm-{{ ceph_version }}/el$releasever/noarch + enabled: 1 + priority: 2 + gpgcheck: 1 + gpgkey: https://download.ceph.com/keys/release.asc + +- name: Add Ceph source repository + yum_repository: + name: ceph-source + description: Ceph noarch packages + baseurl: https://download.ceph.com/rpm-{{ ceph_version }}/el$releasever/SRPMS + enabled: 1 + priority: 2 + gpgcheck: 1 + gpgkey: https://download.ceph.com/keys/release.asc + +- name: install ceph + package: + name: '{{ item }}' + state: present + loop: "{{ ceph_packages }}" From f1208c29bfc0d61499f556e68b51b5307a75dbf4 Mon Sep 17 00:00:00 2001 From: = <=> Date: Wed, 29 Jun 2022 09:22:05 +0100 Subject: [PATCH 04/11] Adding Ceph role to compute playbook --- compute.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/compute.yml b/compute.yml index 74414fd6..e7f69901 100644 --- a/compute.yml +++ b/compute.yml @@ -22,3 +22,4 @@ - mpi - slurm - monitoring + - ceph From dd2a80dd48c07698815c073703fd44f5e475452d Mon Sep 17 00:00:00 2001 From: = <=> Date: Wed, 29 Jun 2022 22:25:56 +0100 Subject: [PATCH 05/11] Adding distrac defaults Stating the src directory for distrac to install into. --- roles/distrac/defaults/main.yaml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 roles/distrac/defaults/main.yaml diff --git a/roles/distrac/defaults/main.yaml b/roles/distrac/defaults/main.yaml new file mode 100644 index 00000000..e9bf46c2 --- /dev/null +++ b/roles/distrac/defaults/main.yaml @@ -0,0 +1,2 @@ +--- +distrac_src_dir: "/usr/local/src/distrac" From dae751aeba244ba86df4e15b10652dcc821b1cae Mon Sep 17 00:00:00 2001 From: = <=> Date: Wed, 29 Jun 2022 23:21:38 +0100 Subject: [PATCH 06/11] Distrac Role This role clones DisTRaC, installs DisTRaC, copies the sudoers files, adds distrac to /usr/bin and installs BC. --- roles/distrac/tasks/main.yaml | 39 +++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 roles/distrac/tasks/main.yaml diff --git a/roles/distrac/tasks/main.yaml b/roles/distrac/tasks/main.yaml new file mode 100644 index 00000000..d8157c98 --- /dev/null +++ b/roles/distrac/tasks/main.yaml @@ -0,0 +1,39 @@ +--- + +- name: ensure git is installed + package: + name: git + +- name: checkout DisTRaC + git: + repo: https://github.com/rosalindfranklininstitute/distrac.git + force: yes + dest: "{{ distrac_src_dir }}" + version: master + +- name: copy in sudoers files + copy: + remote_src: true + src: "{{ distrac_src_dir }}/sudoers_file/distrac" + dest: /etc/sudoers.d/distrac + mode: u=r,g=r + validate: /usr/sbin/visudo -csf %s + +- name: get distrac files + find: + paths: "{{ distrac_src_dir }}/distrac" + patterns: '*.sh' + register: distrac_src + +- name: copy distrac to bin + copy: + remote_src: true + src: "{{ item.path }}" + dest: /usr/bin + mode: u=rwx,g=rx,o=rx + loop: "{{ distrac_src.files }}" + +- name: install bc + package: + name: "bc" + state: present From 22078fb2cf119759f690925c33cf1e78bcc1b5c9 Mon Sep 17 00:00:00 2001 From: = <=> Date: Wed, 29 Jun 2022 23:22:04 +0100 Subject: [PATCH 07/11] Script to add a user to the distrac group --- .../distrac_group/files/add_user_to_distrac_group.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 roles/distrac_group/files/add_user_to_distrac_group.sh diff --git a/roles/distrac_group/files/add_user_to_distrac_group.sh b/roles/distrac_group/files/add_user_to_distrac_group.sh new file mode 100644 index 00000000..9fd18361 --- /dev/null +++ b/roles/distrac_group/files/add_user_to_distrac_group.sh @@ -0,0 +1,12 @@ +#! /bin/bash +set -euo pipefail +IFS=$'\n\t' + +if [[ $# -ne 1 ]]; then + echo "Call with:" + echo " ${0} " + exit 1 +fi + +USER=${1} +usermod -a -G distrac ${USER} From 50d1a9a6c582bb69cb317e8f5455506305d682dc Mon Sep 17 00:00:00 2001 From: = <=> Date: Wed, 29 Jun 2022 23:22:20 +0100 Subject: [PATCH 08/11] Distrac group role A role to create the distrac group and copy the add user to distrac group script to libexec. --- roles/distrac_group/tasks/main.yaml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 roles/distrac_group/tasks/main.yaml diff --git a/roles/distrac_group/tasks/main.yaml b/roles/distrac_group/tasks/main.yaml new file mode 100644 index 00000000..f2532a95 --- /dev/null +++ b/roles/distrac_group/tasks/main.yaml @@ -0,0 +1,14 @@ +--- + +- name: Ensure group distrac group exists + group: + name: distrac + gid: 2000 + state: present + +- name: create add user to distrac group script + copy: + src: add_user_to_distrac_group.sh + dest: /usr/local/libexec/add_user_to_distrac_group + mode: go=r,u=rwx + register: add_user_to_distrac_group \ No newline at end of file From 9396b6732e631898f9dfeec63af395be53cf7111 Mon Sep 17 00:00:00 2001 From: = <=> Date: Wed, 29 Jun 2022 23:22:31 +0100 Subject: [PATCH 09/11] add user to DisTRaC group When using LDAP a user will be added to the distrac group --- roles/users/templates/add_user_ldap.j2 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/roles/users/templates/add_user_ldap.j2 b/roles/users/templates/add_user_ldap.j2 index c3f2fefd..ce3d7f67 100644 --- a/roles/users/templates/add_user_ldap.j2 +++ b/roles/users/templates/add_user_ldap.j2 @@ -60,3 +60,5 @@ EOF curl --silent ${SSHKEYS} | /usr/local/libexec/set_ssh_key ${USER} echo "${PASSWORD}" | /usr/local/libexec/set_password_file ${USER} + +/usr/local/libexec/add_user_to_distrac_group ${USER} From b6cec217f8eea7be5fd1c3a34a9dd8c8255fb77c Mon Sep 17 00:00:00 2001 From: = <=> Date: Wed, 29 Jun 2022 23:22:44 +0100 Subject: [PATCH 10/11] Add distrac roles to compute playbook --- compute.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/compute.yml b/compute.yml index e7f69901..e4e2f23d 100644 --- a/compute.yml +++ b/compute.yml @@ -23,3 +23,5 @@ - slurm - monitoring - ceph + - distrac + - distrac_group From df2a8666639b3e4ab7ddde6e7e9d5aef3ca3b6ee Mon Sep 17 00:00:00 2001 From: = <=> Date: Wed, 29 Jun 2022 23:22:56 +0100 Subject: [PATCH 11/11] Add distrac_group role to management playbook --- management.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/management.yml b/management.yml index 8dd00e20..6cd49ba8 100644 --- a/management.yml +++ b/management.yml @@ -45,6 +45,7 @@ - security_updates - ntp - sssd + - distrac_group - users tasks: - name: copy SSH public keys to slurm account