diff --git a/jetstream_common/templates/slurm/slurm.conf.j2 b/jetstream_common/templates/slurm/slurm.conf.j2 index 0f335c61..701c6d7c 100644 --- a/jetstream_common/templates/slurm/slurm.conf.j2 +++ b/jetstream_common/templates/slurm/slurm.conf.j2 @@ -40,12 +40,14 @@ ReturnToService=1 NodeName={{ hostvars[host]['inventory_hostname_short'] }} NodeAddr={{ hostvars[host]['ansible_host'] }} RealMemory={{ node_type.real_memory }} Sockets={{ node_type.sockets }} CoresPerSocket=1 ThreadsPerCore=1 State=UNKNOWN {% endfor %} {% endfor %} +# Needed when setting up a controller without workers +NodeName=placeholder CPUs=64 State=future # # Partition Configurations # {# well this is less than ideal, it should loop partitions, and then generate a hostlist for that partition. but this works for now... #} {% for node_type in slurm_nodes %} -PartitionName=multi State=UP MaxTime=48:20:00 MaxNodes=1 Nodes={{ slurm_hostlists.results[0].stdout }} +PartitionName=multi State=UP MaxTime=48:20:00 MaxNodes=1 Nodes={{ slurm_hostlists.results[0].stdout | default( 'placeholder') }} {% endfor %} SlurmctldDebug=7 diff --git a/roles/slurm/tasks/main.yml b/roles/slurm/tasks/main.yml index 58925a67..01d6ac30 100644 --- a/roles/slurm/tasks/main.yml +++ b/roles/slurm/tasks/main.yml @@ -38,10 +38,17 @@ #- slurm-torque when: ansible_os_family == "RedHat" -- name: Acquire hostlist +- name: Check if any workers are defined locally + debug: + msg: '{{ groups[item.inventory_group] | length > 0 }}' + with_items: "{{ slurm_nodes }}" + register: local_workers + +- name: Acquire remote hostlist command: scontrol show hostlist {{ groups[item.inventory_group] | join(",") }} - with_items: slurm_nodes + with_items: "{{ slurm_nodes }}" register: slurm_hostlists + when: local_workers.results[0].msg == True - name: Install slurm.conf template: