KVM虚拟化日志

  • 首页
  • HPC
  • K8S
  • Python
  • 数据库
  • 登录
专注HPC、虚拟化、DevOps、云原生技术
  1. 首页
  2. HPC
  3. 正文

Slurm配置REST API接口服务

2025/11/11 37点热度 0人点赞 0条评论

前提条件

  • 编译时设置了--with slurmrestd选项,得到类似slurm-slurmrestd-22.05.11-1.el9.x86_64.rpm的安装包

安装步骤

创建一个slurmrestd用户

注意:使用/var/lib/slurmrestd作为家目录,根据实际情况修改uid和组

Shell
1
2
3
4
5
6
7
sudo useradd  \
    -m -c "SLURM workload manager" \
    -d /var/lib/slurmrestd \
    -u 968 \
    -g slurm  \
    -s /bin/bash \
    slurmrestd

安装slurmrestd二进制

Shell
1
sudo rpm -ivh slurm-slurmrestd-22.05.11-1.el9.x86_64.rpm

配置systemd守护进程

新建一个随机key,类似于加密种子

Shell
1
2
3
sudo dd if=/dev/random of=/etc/slurm/jwt_hs256.key bs=32 count=1
sudo chown slurmrestd:slurm /etc/slurm/jwt_hs256.key
sudo chmod 440 /etc/slurm/jwt_hs256.key

设置启动配置

Shell
1
2
sudo vim /etc/sysconfig/slurmrestd
SLURMRESTD_OPTIONS="-u slurmrestd -g slurm 0.0.0.0:6820 -vvv"

修改默认的启动配置

Shell
1
2
3
4
5
sudo vim /usr/lib/systemd/system/slurmrestd.service
# 将默认的ExecStart
#ExecStart=/usr/sbin/slurmrestd $SLURMRESTD_OPTIONS unix:/var/lib/slurmrestd.socket 0.0.0.0:6820
# 修改为
ExecStart=/usr/sbin/slurmrestd $SLURMRESTD_OPTIONS

重新加载守护进程文件

Shell
1
sudo systemctl daemon-reload

配置slurm.conf和slurmdbd.conf

修改slurm.conf,增加如下配置

Shell
1
2
AuthAltTypes=auth/jwt
AuthAltParameters=jwt_key=/etc/slurm/jwt_hs256.key,jwt_token_timeout=3600

修改slurmdbd.conf,增加如下配置

Shell
1
2
AuthAltTypes=auth/jwt
AuthAltParameters=jwt_key=/etc/slurm/jwt_hs256.key,jwt_token_timeout=3600

重新启动服务

Shell
1
2
3
4
5
sudo systemctl restart slurmctld
sudo systemctl restart slurmdbd
# 等待几秒后查看进程
sudo systemctl status slurmctld
sudo systemctl status slurmdbd

启动slurmrestd服务

Shell
1
2
sudo systemctl enable --now slurmrestd
sudo systemctl status slurmrestd

测试和其他配置

生成JWT密钥

用户需要使用rest接口时,直接使用命令行工具获取token,例如

Shell
1
2
3
4
# 默认token有效期为3600秒,即1个小时
scontrol token
# 可以自选token有效期,单位为秒
scontrol token lifespan=${seconds}

效果如图:

成功获取JWT

使用JWT密钥

使用JWT,需要以下信息:

变量

值

备注

BASE_URL

http://<slurmrestd服务IP>:6820

HTTP服务地址

X-SLURM-USER-NAME

/

用户名

X-SLURM-USER-TOKEN

/

生成的SLURM_JWT值

API_VERSION

v0.0.38

API版本,和Slurm版本有关,以Slurm 22.05.11为例

使用curl测试:

Shell
1
2
3
4
5
6
7
8
9
export BASE_URL=http://localhost:6820
export USER_NAME=ops
export SLURM_JWT=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NjI4MjI5NDUsImlhdCI6MTc2MjgyMTE0NSwic3VuIjoib3BzIn0.bFxHRCmv-D4c8HsSDCs5sZ3QIWnBMQg4_k_AOvufDkQ
export API_VERSION=v0.0.38
 
 
curl -X GET ${BASE_URL}/slurm/${API_VERSION}/diag \
    -H "X-SLURM-USER-NAME:${USER_NAME}" \
    -H "X-SLURM-USER-TOKEN:${SLURM_JWT}"

效果如图:

参考文档
  1. https://docs.lxp.lu/web_services/slurmrestd/#__tabbed_1_2
  2. https://aws-samples.github.io/aws-eda-slurm-cluster/rest_api/
  3. https://slurm.schedmd.com/PEARC20/REST_API.pdf
  4. https://blog.csdn.net/xuecangqiuye/article/details/107445819
  5. https://wiki.fysik.dtu.dk/Niflheim_system/Slurm_accounting/
标签: 暂无
最后更新:2025/11/11

牛牛很忙

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >
文章目录
  • 前提条件
  • 安装步骤
    • 创建一个slurmrestd用户
    • 安装slurmrestd二进制
    • 配置systemd守护进程
    • 配置slurm.conf和slurmdbd.conf
    • 启动slurmrestd服务
  • 测试和其他配置
    • 生成JWT密钥
    • 使用JWT密钥
标签聚合
terraform eda fcfs iac k8s vcenter cad ansible

COPYRIGHT © 2025 KVM虚拟化日志. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang