marvel-nccr.slurm

CI Ansible Role Release

Ansible 角色:marvel-nccr.slurm

一个在 Ubuntu 系统上安装 slurm 工作负载管理器的 Ansible 角色(已测试于 16.04、18.04 和 20.04)。

注意:该角色配置运行 slurm 的机器也作为计算节点(因此包含了一些关于机器内核数的自动检测功能)。 目前该角色尚未设计为设置多个节点的计算集群,对于这一点,请参阅例如 https://github.com/elasticluster/elasticluster 等工具。

该角色功能:

  • 安装 slurm 包
  • 设置 slurm 配置(/etc/slurm-llnl/slurm.conf),动态使用正确的平台资源(主机名、CPU 数等),并配置一个节点(命名为 $HOSTNAME)和一个分区(命名为 slurm_partition_name)。
  • 添加 slurm-resources 脚本以及启动服务,以自动初始化正确的平台资源(在创建虚拟机镜像时,实例可能具有不同资源时需要的)
  • 启动 slurm 服务。

要检查服务是否正在运行(假设使用 systemd):

$ systemctl --type=service
...
slurmctld.service                  加载完成 活跃 运行 Slurm 控制器守护进程
slurmd.service                     加载完成 活跃 运行 Slurm 节点守护进程
...

要检查 slurm 节点/分区:

$ scontrol show node
$ scontrol show partition

这应该与 lscpu 给出的资源匹配。

要启用/禁用 slurm-resources 启动服务:

$ systemctl enable slurm-resources

要直接更改 slurm 的资源配置,可以使用例如:

$ slurm-resources -e restart_on_change=true -e slurm_max_cpus=2

这将更新节点定义的资源,将分区的最大 CPU 设置为 2(与节点上的 CPU 数无关),并在配置更新时重启 slurm 服务。

安装

ansible-galaxy install marvel-nccr.slurm

角色变量

参见 defaults/main.yml

示例剧本

- hosts: servers
  roles:
  - role: marvel-nccr.slurm

开发和测试

该角色使用 MoleculeDocker 进行测试。

安装 Docker 后:

将代码库克隆到名为 marvel-nccr.slurm 的包中(文件夹名称必须与 Ansible Galaxy 名称相同)

git clone https://github.com/marvel-nccr/ansible-role-slurm marvel-nccr.slurm
cd marvel-nccr.slurm

然后运行:

pip install -r requirements.txt  # 安装 molecule
molecule test  # 运行测试

或使用 tox(参见 tox.ini):

pip install tox
tox

代码风格

代码样式使用 pre-commit 进行格式化和检查。

pip install pre-commit
pre-commit run -all

部署

通过 GitHub Actions 自动化部署到 Ansible Galaxy。 只需标记版本 vX.Y.Z 即可启动 CI 和发布工作流程。 请注意,只有在 CI 测试通过的情况下,发布才会完成。

许可证

MIT

联系

请将有关 Quantum Mobile 和相关 Ansible 角色的询问发送至 AiiDA 邮件列表

关于项目

An Ansible role that installs the [slurm](https://slurm.schedmd.com/) workload manager on Ubuntu.

安装
ansible-galaxy install marvel-nccr.slurm
许可证
other
下载
2k
拥有者
The NCCR MARVEL is a centre on Computational Design and Discovery of Novel Materials created by the Swiss National Science Foundation