From ef04c4b4c38b33a3d13b352e3e5b54feb4b4cd97 Mon Sep 17 00:00:00 2001 From: Chris Hines <chris.hines@monash.edu> Date: Wed, 19 Aug 2015 00:13:06 +0000 Subject: [PATCH] updates to the slurm roles. Work with CentOS 7 --- .../tasks/installMungeFromSource.yml | 12 +++++ .../tasks/installSlurmFromSource.yml | 5 -- roles/slurm-common/tasks/main.yml | 5 -- roles/slurm-common/templates/munge.service.j2 | 17 ++++++ roles/slurm-start/tasks/main.yml | 53 +++++++++++++++++-- .../templates/slurm.initd.j2 | 0 .../templates/slurmctld.service.j2 | 12 +++++ roles/slurm-start/templates/slurmd.service.j2 | 13 +++++ .../templates/slurmdbd.initd.j2 | 0 .../slurm-start/templates/slurmdbd.service.j2 | 13 +++++ roles/slurmdb-config/tasks/main.yml | 6 +-- 11 files changed, 120 insertions(+), 16 deletions(-) create mode 100644 roles/slurm-common/templates/munge.service.j2 rename roles/{slurm-common => slurm-start}/templates/slurm.initd.j2 (100%) create mode 100644 roles/slurm-start/templates/slurmctld.service.j2 create mode 100644 roles/slurm-start/templates/slurmd.service.j2 rename roles/{slurmdb-config => slurm-start}/templates/slurmdbd.initd.j2 (100%) create mode 100644 roles/slurm-start/templates/slurmdbd.service.j2 diff --git a/roles/slurm-common/tasks/installMungeFromSource.yml b/roles/slurm-common/tasks/installMungeFromSource.yml index 438497c..aec3033 100644 --- a/roles/slurm-common/tasks/installMungeFromSource.yml +++ b/roles/slurm-common/tasks/installMungeFromSource.yml @@ -26,3 +26,15 @@ - name: copy init script template: dest=/etc/init.d/munge src=munge.initd.j2 mode=755 sudo: true + +- name: copy slurm init script if OS contains systemd + template: dest=/etc/systemd/system/munge.service src=munge.service.j2 mode=755 + sudo: true + when: (ansible_distribution == "CentOS" or ansible_distribution == "RedHat") and + ( ansible_distribution_major_version == "7") + +- name: reload systemd + shell: systemctl daemon-reload + sudo: true + when: (ansible_distribution == "CentOS" or ansible_distribution == "RedHat") and + ( ansible_distribution_major_version == "7") diff --git a/roles/slurm-common/tasks/installSlurmFromSource.yml b/roles/slurm-common/tasks/installSlurmFromSource.yml index a172b99..95d5fc9 100644 --- a/roles/slurm-common/tasks/installSlurmFromSource.yml +++ b/roles/slurm-common/tasks/installSlurmFromSource.yml @@ -32,8 +32,3 @@ args: chdir: /tmp/slurm-{{ slurm_version }} creates: "{{ slurm_dir }}/bin/srun" - -- name: copy init script - template: dest=/etc/init.d/slurm src=slurm.initd.j2 mode=755 - sudo: true - diff --git a/roles/slurm-common/tasks/main.yml b/roles/slurm-common/tasks/main.yml index a7c5e16..a75f57a 100644 --- a/roles/slurm-common/tasks/main.yml +++ b/roles/slurm-common/tasks/main.yml @@ -99,15 +99,11 @@ - name: install munge key template: src=munge_key.j2 dest={{ munge_dir }}/etc/munge/munge.key owner=munge mode=600 sudo: true - notify: restart munge - name: enable munge on boot service: name=munge enabled=yes sudo: true -- name: start munge - service: name=munge state=started - sudo: true - include: installSlurmFromSource.yml @@ -130,7 +126,6 @@ - name: install slurm.conf copy: src=files/slurm.conf dest={{ slurm_dir }}/etc/slurm.conf sudo: true - notify: restart slurm when: slurm_use_vpn==False - name: install slurm.conf diff --git a/roles/slurm-common/templates/munge.service.j2 b/roles/slurm-common/templates/munge.service.j2 new file mode 100644 index 0000000..2e73014 --- /dev/null +++ b/roles/slurm-common/templates/munge.service.j2 @@ -0,0 +1,17 @@ +[Unit] +Description=MUNGE authentication service +Documentation=man:munged(8) +After=network.target +After=syslog.target +After=time-sync.target + +[Service] +Type=forking +ExecStart={{ munge_dir }}/sbin/munged +PIDFile={{ munge_dir }}/var/run/munge/munged.pid +User=munge +Group=munge +Restart=on-abort + +[Install] +WantedBy=multi-user.target diff --git a/roles/slurm-start/tasks/main.yml b/roles/slurm-start/tasks/main.yml index 29f3bc2..4e642e8 100644 --- a/roles/slurm-start/tasks/main.yml +++ b/roles/slurm-start/tasks/main.yml @@ -1,13 +1,60 @@ --- +- name: set use_systemd + set_fact: + use_systemd: True + when: (ansible_distribution == "CentOS" or ansible_distribution == "RedHat") and + ( ansible_distribution_major_version == "7") + +- name: install slurmdbd init + template: src=slurmdbd.initd.j2 dest=/etc/init.d/slurmdbd mode=755 + sudo: true + when: use_systemd is not defined and start_slurmdbd is defined + +- name: copy slurmdbd init script if OS contains systemd + template: dest=/etc/systemd/system/slurmdbd.service src=slurmdbd.service.j2 mode=755 + sudo: true + when: use_systemd is defined and start_slurmdbd is defined + +- name: copy slurm init script + template: dest=/etc/init.d/slurm src=slurm.initd.j2 mode=755 + sudo: true + when: use_systemd is not defined + +- name: copy slurmd.service + template: dest=/etc/systemd/system/slurmd.service src=slurmd.service.j2 mode=755 + sudo: true + when: use_systemd is defined and start_slurmd is defined + +- name: slurmctld.service + template: dest=/etc/systemd/system/slurmctld.service src=slurmctld.service.j2 mode=755 + sudo: true + when: use_systemd is defined and start_slurmctld is defined + +- name: reload systemd + shell: systemctl daemon-reload + sudo: true + when: use_systemd is defined + - name: start munge service: name=munge state=started sudo: true - name: start slurmdbd - service: name=slurmdbd state=started + service: name=slurmdbd state=started enabled=yes + sudo: true + when: start_slurmdbd is defined + +- name: start slurmctl + service: name=slurmctld state=started enabled=yes + sudo: true + when: use_systemd is defined and start_slurmctld is defined + +- name: start slurmd + service: name=slurmd state=started enabled=yes sudo: true - ignore_errors: true + when: use_systemd is defined and start_slurmd is defined - name: start slurm - service: name=slurm state=started + service: name=slurm state=started enabled=yes sudo: true + when: use_systemd is not defined and ( start_slurmd is defined or start_slurmctld is defined ) diff --git a/roles/slurm-common/templates/slurm.initd.j2 b/roles/slurm-start/templates/slurm.initd.j2 similarity index 100% rename from roles/slurm-common/templates/slurm.initd.j2 rename to roles/slurm-start/templates/slurm.initd.j2 diff --git a/roles/slurm-start/templates/slurmctld.service.j2 b/roles/slurm-start/templates/slurmctld.service.j2 new file mode 100644 index 0000000..226bc4d --- /dev/null +++ b/roles/slurm-start/templates/slurmctld.service.j2 @@ -0,0 +1,12 @@ +[Unit] +Description=Slurm controller daemon +After=network.target +ConditionPathExists={{ slurm_dir }}/etc/slurm.conf + +[Service] +Type=forking +#EnvironmentFile=/etc/default/slurmctld +ExecStart={{ slurm_dir }}/sbin/slurmctld $SLURMCTLD_OPTIONS +PIDFile={{ slurmpiddir }}/slurmctld.pid +[Install] +WantedBy=multi-user.target diff --git a/roles/slurm-start/templates/slurmd.service.j2 b/roles/slurm-start/templates/slurmd.service.j2 new file mode 100644 index 0000000..d291736 --- /dev/null +++ b/roles/slurm-start/templates/slurmd.service.j2 @@ -0,0 +1,13 @@ +[Unit] +Description=Slurm node daemon +After=network.target +ConditionPathExists={{ slurm_dir }}/etc/slurm.conf + +[Service] +Type=forking +#EnvironmentFile=/etc/default/slurmd +ExecStart={{ slurm_dir }}/sbin/slurmd $SLURMD_OPTIONS +PIDFile={{ slurmpiddir }}/slurmd.pid + +[Install] +WantedBy=multi-user.target diff --git a/roles/slurmdb-config/templates/slurmdbd.initd.j2 b/roles/slurm-start/templates/slurmdbd.initd.j2 similarity index 100% rename from roles/slurmdb-config/templates/slurmdbd.initd.j2 rename to roles/slurm-start/templates/slurmdbd.initd.j2 diff --git a/roles/slurm-start/templates/slurmdbd.service.j2 b/roles/slurm-start/templates/slurmdbd.service.j2 new file mode 100644 index 0000000..d27b275 --- /dev/null +++ b/roles/slurm-start/templates/slurmdbd.service.j2 @@ -0,0 +1,13 @@ + +[Unit] +Description=Slurm DBD accounting daemon +After=network.target +ConditionPathExists={{ slurm_dir }}/etc/slurmdbd.conf + +[Service] +Type=forking +ExecStart={{ slurm_dir }}/sbin/slurmdbd +PIDFile=/var/run/slurmdbd.pid + +[Install] +WantedBy=multi-user.target diff --git a/roles/slurmdb-config/tasks/main.yml b/roles/slurmdb-config/tasks/main.yml index 71c0b92..aa3323f 100644 --- a/roles/slurmdb-config/tasks/main.yml +++ b/roles/slurmdb-config/tasks/main.yml @@ -17,11 +17,11 @@ - python-mysqldb when: ansible_os_family == "Debian" -- name: install slurmdbd init - template: src=slurmdbd.initd.j2 dest=/etc/init.d/slurmdbd mode=755 +- name: make sure config dir exists + file: path="{{ slurm_dir }}/etc" state=directory sudo: true -- name: install slurmdb.conf init +- name: install slurmdb.conf template: src=slurmdbd.conf.j2 dest={{ slurm_dir }}/etc/slurmdbd.conf sudo: true when: slurm_dir is defined -- GitLab