flame-roles/slurm_qos
dvosler 84cc831ce8 MaxTRES added 2025-04-07 06:33:23 -04:00
..
defaults/main initial dvosler qos role 2025-01-29 20:06:07 -05:00
files path 2025-02-03 14:42:11 -05:00
tasks MaxTRES added 2025-04-07 06:33:23 -04:00
README.md initial 2025-02-24 10:29:36 -05:00

README.md

Slurm QoS Ansible Role

This Ansible role configures Quality of Service (QoS) settings, accounts, and users in a Slurm cluster using the sacctmgr command-line tool.

Overview

The role:

  • Creates or modifies Slurm QoS settings (e.g., MaxTRES, MaxTRESPU, MaxSubmitJobs, etc.).
  • Manages Slurm accounts and users (if defined).

Prerequisites

  • Ansible installed on the control node.
  • Slurm cluster with sacctmgr available on the target nodes.
  • Administrative privileges to modify Slurm configurations.

Role Variables

Variables are defined in vars/slurm_qos/qos.yml. Example:

slurm_qos_settings:
  - name: normal
    MaxTRES: node=-1
    MaxSubmitJobs: 100
    Preempt: preempt_qos
  - name: preempt_qos
    GraceTime: 120
    MaxTRES: node=4
    MaxTRESPU: node=4
    MaxSubmitJobs: 50
    MaxJobsPerUser: 24

Usage

  1. Clone or copy this role into your Ansible project (e.g., roles/slurm_qos/).
  2. Define your QoS settings in vars/slurm_qos/qos.yml.
  3. Include the role in your playbook:
- hosts: slurm_controller
  roles:
    - slurm_qos
  1. Run the playbook: ansible-playbook -i inventory playbook.yml

Example

To apply the QoS settings shown above:

  1. Ensure vars/slurm_qos/qos.yml contains the desired configuration.
  2. Run the playbook targeting your Slurm controller node.

Verify the settings with: sacctmgr show qos format=name,gracetime,maxtres,MaxTRESPU,MaxJobsPU,MaxSubmitPU

License

MIT