Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
---
# tasks file for cheaha.node
- name: Update /etc/hosts with cluster addressing
ansible.builtin.lineinfile:
path: /etc/hosts
line: "{{ item }}"
loop:
- "172.20.0.24 cheaha-master02.cm.cluster cheaha-master02"
- "172.20.0.22 cheaha-master01.cm.cluster cheaha-master01"
- "172.20.0.25 master.cm.cluster master localmaster.cm.cluster localmaster ldapserver.cm.cluster ldapserver"
- name: Install prerequisite packages
yum:
name: epel-release
state: present
- name: Disable SELinux
ansible.posix.selinux:
state: disabled
- name: Copy cm.repo into place (consider making this a template)
ansible.builtin.copy:
src: cm.repo
dest: /etc/yum.repos.d/cm.repo
owner: root
group: root
mode: 0644
- name: Copy CM repo GPG key
ansible.builtin.copy:
src: RPM-GPG-KEY-cm
dest: /etc/pki/rpm-gpg/RPM-GPG-KEY-cm
owner: root
group: root
mode: 0644
- name: Create slurm group
ansible.builtin.group:
name: slurm
state: present
gid: 450
- name: Create slurm user
ansible.builtin.user:
name: slurm
state: present
uid: 450
group: slurm
- name: Install required packages
yum:
name:
- slurm-client-18.08.9-100463_cm8.2_a522576834.x86_64
- munge-0.5.13-139_cm8.2.x86_64
- openldap-servers-2.4.48-290_cm8.2
- Lmod-7.7.14-100054_cm8.2_4cb5624f0b.noarch
- cm-modules-init-client-8.2-70_cm8.2.noarch
- cmdaemon
- nss-pam-ldapd
- openldap-servers
state: present
- name: Update nsswitch.conf to look for ldap
ansible.builtin.replace:
dest: /etc/nsswitch.conf
regexp: '^({{ item }}:(?!.*\bldap\b).*)$'
replace: '\1 ldap'
loop:
- passwd
- shadow
- group
- netgroup
- automount
- name: Set up NFS GPFS mount point(s)
ansible.posix.mount:
path: "{{ item.path }}"
src: "{{ item.src }}"
fstype: "{{ item.fstype }}"
opts: "{{ item.opts }}"
state: present
loop:
- { path: /cm/shared, src: "gpfs.rc.uab.edu:/data/cm/shared-8.2", fstype: nfs, opts: _netdev,defaults }
- { path: /home, src: "gpfs.rc.uab.edu:/data/user/home", fstype: nfs, opts: _netdev,defaults }
- { path: /data/project, src: "gpfs.rc.uab.edu:/data/project", fstype: nfs, opts: _netdev,defaults }
- { path: /data/user, src: "gpfs.rc.uab.edu:/data/user", fstype: nfs, opts: _netdev,defaults }
- name: Add ssh key for root access
ansible.posix.authorized_key:
user: root
state: present
key: "{{ root_ssh_key }}"
- name: Copy munge key
ansible.builtin.copy:
src: munge.key
dest: /etc/munge/munge.key
owner: daemon
group: root
mode: 0400
- name: Copy ldap cert(s) into place
ansible.builtin.copy:
src: "{{ item.src }}"
dest: "/cm/local/apps/openldap/etc/certs/{{ item.src }}"
owner: ldap
group: ldap
mode: 0440
loop:
- { src: ca.pem }
- { src: ldap.key }
- { src: ldap.pem }
- name: Copy ldap config into place
ansible.builtin.copy:
src: nslcd.conf
dest: /etc/nslcd.conf
owner: root
group: root
mode: 0600
- name: Enable services
ansible.builtin.service:
name: "{{ item }}"
enabled: yes
loop:
- munge
- slurmd
- nslcd
- name: Create base directories
ansible.builtin.file:
path: "{{ item.dir }}"
state: directory
mode: "{{ item.mode }}"
loop:
- { dir: /local, mode: '0777' }
- { dir: /scratch, mode: '0755' }
- name: Create symbolic link from /scratch/local to /local
ansible.builtin.file:
src: /local
dest: /scratch/local
owner: root
group: root
state: link