Update
This page describes how to update Slurm-web to the latest version. It is important to keep your installation up to date to benefit from the latest features, improvements, and security patches.
The document provides a general procedure for updating the software and specific steps for updating to latest major version.
General Procedure
System packages
Depending on host Linux distribution, run this command to update Slurm-web packages:
-
RHEL, CentOS, Rocky Linux, AlmaLinux OS and Fedora
-
Debian and Ubuntu
-
SLES and openSUSE
# dnf update
# apt update && apt upgrade
# zypper update
Restart services:
-
Native service
-
Production HTTP server
When using default native service:
# systemctl restart slurm-web-gateway.service slurm-web-agent.service
When using production HTTP server:
# systemctl restart slurm-web-gateway-uwsgi.service slurm-web-agent-uwsgi.service
Check status:
-
Native service
-
Production HTTP server
When using default native service:
# systemctl status slurm-web-gateway.service slurm-web-agent.service
When using production HTTP server:
# systemctl status slurm-web-gateway-uwsgi.service slurm-web-agent-uwsgi.service
Services must be active and running.
Containers
Pull the latest Slurm-web images:
-
Docker
-
Podman
$ docker pull ghcr.io/rackslab/slurm-web-agent:latest
$ docker pull ghcr.io/rackslab/slurm-web-gateway:latest
$ podman pull ghcr.io/rackslab/slurm-web-agent:latest
$ podman pull ghcr.io/rackslab/slurm-web-gateway:latest
Pulling images does not update already running containers. Stop and remove the current containers, then create them again with the same options used at deployment, including the bind mounts and user options described in the containers install reference.
-
Docker
-
Podman
$ docker rm -f slurm-web-gateway slurm-web-agent
$ docker run -d --name slurm-web-agent [MOUNTS] \
--user $(id -u slurm-web):$(id -g slurm-web) \
ghcr.io/rackslab/slurm-web-agent:latest
$ docker run -d --name slurm-web-gateway [MOUNTS] \
--user $(id -u slurm-web):$(id -g slurm-web) \
ghcr.io/rackslab/slurm-web-gateway:latest
$ podman rm -f slurm-web-gateway slurm-web-agent
$ podman run -d --name slurm-web-agent [MOUNTS] \
--userns=keep-id --user $(id -u slurm-web):$(id -g slurm-web) \
ghcr.io/rackslab/slurm-web-agent:latest
$ podman run -d --name slurm-web-gateway [MOUNTS] \
--userns=keep-id --user $(id -u slurm-web):$(id -g slurm-web) \
ghcr.io/rackslab/slurm-web-gateway:latest
With rootful Podman, omit --userns=keep-id.
Check status:
-
Docker
-
Podman
$ docker ps --filter name=slurm-web-
$ podman ps --filter name=slurm-web-
Compose
Pull the latest Slurm-web images:
-
Docker Compose
-
Podman Compose
$ docker compose pull
$ podman compose pull
Apply the updated images:
-
Docker Compose
-
Podman Compose
$ LOCAL_UID=$(id -u) LOCAL_GID=$(id -g) docker compose up -d
$ LOCAL_UID=$(id -u) LOCAL_GID=$(id -g) podman compose up -d
Check status:
-
Docker Compose
-
Podman Compose
$ docker compose ps
$ podman compose ps
Connect to Slurm-web web interface with your browser to check it is up-and-running.
Notes for Slurm-web 7
To update Slurm-web from version 6 to version 7, some manual additional steps must be performed.
Package Repositories
To avoid impacting users with automatic upgrades, Slurm-web 7 packages are published to a separate repository. Package repositories settings must be updated to install this version.
DNF
| This procedure works on RHEL, CentOS, Rocky Linux and AlmaLinux OS. |
Edit /etc/yum.repos.d/rackslab.repo to change repository from
slurmweb-6 to slurmweb-7:
-
RHEL 8
-
RHEL 9
-
RHEL 10
-
Fedora 43
-
Fedora 44
--- a/etc/yum.repos.d/rackslab.repo
+++ b/etc/yum.repos.d/rackslab.repo
@@ -4,8 +4,8 @@
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rackslab
-[rackslab-slurmweb-6]
-name=Rackslab slurmweb-6
-baseurl=https://pkgs.rackslab.io/rpm/el8/slurmweb-6/$basearch/
+[rackslab-slurmweb-7]
+name=Rackslab slurmweb-7
+baseurl=https://pkgs.rackslab.io/rpm/el8/slurmweb-7/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rackslab
--- a/etc/yum.repos.d/rackslab.repo
+++ b/etc/yum.repos.d/rackslab.repo
@@ -4,8 +4,8 @@
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rackslab
-[rackslab-slurmweb-6]
-name=Rackslab slurmweb-6
-baseurl=https://pkgs.rackslab.io/rpm/el9/slurmweb-6/$basearch/
+[rackslab-slurmweb-7]
+name=Rackslab slurmweb-7
+baseurl=https://pkgs.rackslab.io/rpm/el9/slurmweb-7/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rackslab
--- a/etc/yum.repos.d/rackslab.repo
+++ b/etc/yum.repos.d/rackslab.repo
@@ -4,8 +4,8 @@
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rackslab
-[rackslab-slurmweb-6]
-name=Rackslab slurmweb-6
-baseurl=https://pkgs.rackslab.io/rpm/el10/slurmweb-6/$basearch/
+[rackslab-slurmweb-7]
+name=Rackslab slurmweb-7
+baseurl=https://pkgs.rackslab.io/rpm/el10/slurmweb-7/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rackslab
--- a/etc/yum.repos.d/rackslab.repo
+++ b/etc/yum.repos.d/rackslab.repo
@@ -4,8 +4,8 @@
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rackslab
-[rackslab-slurmweb-6]
-name=Rackslab slurmweb-6
-baseurl=https://pkgs.rackslab.io/rpm/fc43/slurmweb-6/$basearch/
+[rackslab-slurmweb-7]
+name=Rackslab slurmweb-7
+baseurl=https://pkgs.rackslab.io/rpm/fc43/slurmweb-7/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rackslab
--- a/etc/yum.repos.d/rackslab.repo
+++ b/etc/yum.repos.d/rackslab.repo
@@ -4,8 +4,8 @@
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rackslab
-[rackslab-slurmweb-6]
-name=Rackslab slurmweb-6
-baseurl=https://pkgs.rackslab.io/rpm/fc44/slurmweb-6/$basearch/
+[rackslab-slurmweb-7]
+name=Rackslab slurmweb-7
+baseurl=https://pkgs.rackslab.io/rpm/fc44/slurmweb-7/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rackslab
Run this command to update repositories and packages:
# dnf update
APT
Edit /etc/apt/sources.list.d/rackslab.sources to change distribution
from slurmweb-6 to slurmweb-7:
-
Debian 13 « trixie »
-
Debian 14 « forky »
-
Debian unstable « sid »
-
Ubuntu 26.04 LTS
--- a/etc/apt/sources.list.d/rackslab.sources
+++ b/etc/apt/sources.list.d/rackslab.sources
@@ -1,6 +1,6 @@
Types: deb
URIs: https://pkgs.rackslab.io/deb
Suites: trixie
-Components: main slurmweb-6
+Components: main slurmweb-7
Architectures: amd64
Signed-By: /usr/share/keyrings/rackslab.gpg
--- a/etc/apt/sources.list.d/rackslab.sources
+++ b/etc/apt/sources.list.d/rackslab.sources
@@ -1,6 +1,6 @@
Types: deb
URIs: https://pkgs.rackslab.io/deb
Suites: forky
-Components: main slurmweb-6
+Components: main slurmweb-7
Architectures: amd64
Signed-By: /usr/share/keyrings/rackslab.gpg
--- a/etc/apt/sources.list.d/rackslab.sources
+++ b/etc/apt/sources.list.d/rackslab.sources
@@ -1,6 +1,6 @@
Types: deb
URIs: https://pkgs.rackslab.io/deb
Suites: sid
-Components: main slurmweb-6
+Components: main slurmweb-7
Architectures: amd64
Signed-By: /usr/share/keyrings/rackslab.gpg
--- a/etc/apt/sources.list.d/rackslab.sources
+++ b/etc/apt/sources.list.d/rackslab.sources
@@ -1,6 +1,6 @@
Types: deb
URIs: https://pkgs.rackslab.io/deb
Suites: ubuntu26.04
-Components: main slurmweb-6
+Components: main slurmweb-7
Architectures: amd64
Signed-By: /usr/share/keyrings/rackslab.gpg
Run this command to update repositories and packages:
# apt update && apt upgrade
Zypper
This procedure works on SUSE Linux Entreprise Server (SLES) and openSUSE LEAP.
Rename file /etc/zypp/repos.d/rackslab-slurmweb-6.repo to
/etc/zypp/repos.d/rackslab-slurmweb-7.repo and edit its content to
change repository from slurmweb-6 to slurmweb-7:
-
SLES 15
-
SLES 16
--- /etc/zypp/repos.d/rackslab-slurmweb-6.repo
+++ /etc/zypp/repos.d/rackslab-slurmweb-7.repo
@@ -1,7 +1,7 @@
-[rackslab-slurmweb-6]
+[rackslab-slurmweb-7]
enabled=1
autorefresh=1
-baseurl=https://pkgs.rackslab.io/rpm/suse15/slurmweb-6/x86_64
+baseurl=https://pkgs.rackslab.io/rpm/suse15/slurmweb-7/x86_64
type=rpm-md
gpgcheck=1
repo_gpgcheck=0
--- /etc/zypp/repos.d/rackslab-slurmweb-6.repo
+++ /etc/zypp/repos.d/rackslab-slurmweb-7.repo
@@ -1,7 +1,7 @@
-[rackslab-slurmweb-6]
+[rackslab-slurmweb-7]
enabled=1
autorefresh=1
-baseurl=https://pkgs.rackslab.io/rpm/suse16/slurmweb-6/x86_64
+baseurl=https://pkgs.rackslab.io/rpm/suse16/slurmweb-7/x86_64
type=rpm-md
gpgcheck=1
repo_gpgcheck=0
Run this command to update repositories and packages:
# zypper update
Generate gateway session key
Slurm-web 7 requires a gateway session secret file to secure server-side login state during authentication flows. Installations upgraded from version 6 do not have this file. Generate it as root after upgrading packages and before restarting the gateway:
-
System packages
-
Docker
-
Podman
-
Compose
# slurm-web gen-session-key
$ docker run --rm \
--user $(id -u slurm-web):$(id -g slurm-web) \
-v /var/lib/slurm-web:/var/lib/slurm-web \
ghcr.io/rackslab/slurm-web-gateway:latest gen-session-key
$ podman run --rm \
--userns=keep-id --user $(id -u slurm-web):$(id -g slurm-web) \
-v /var/lib/slurm-web:/var/lib/slurm-web \
ghcr.io/rackslab/slurm-web-gateway:latest gen-session-key
With rootful Podman, omit --userns=keep-id.
|
$ LOCAL_UID=$(id -u) LOCAL_GID=$(id -g) docker compose run --rm gateway gen-session-key
With Podman Compose:
$ LOCAL_UID=$(id -u) LOCAL_GID=$(id -g) podman compose run --rm gateway gen-session-key
By default, the session secret key file is generated in
/var/lib/slurm-web/session.key. You can set session_key in the
[service] section of /etc/slurm-web/gateway.ini to use a custom
path.
|
See slurm-web gen-session-key
command manpage and OIDC authentication for more
details.
Authorization policy actions
Slurm-web 7 renames authorization policy actions from the legacy view-*
prefix to <resource>-view, consistent with actions such as associations-view
and cache-view.
If defined, the custom site policy in /etc/slurm-web/policy.ini must
be updated to use the new action names:
| Deprecated legacy action | New action |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
For example, update a role definition from:
[user]
actions=view-stats,view-jobs,view-nodes
to:
[user]
actions=stats-view,jobs-view,nodes-view
Installations without a custom /etc/slurm-web/policy.ini file use the
updated vendor default policy and do not require this change.
Deprecated legacy view-* action names remain accepted in custom
policy.ini files. They are automatically mapped to the new names at
load time, with a deprecation warning logged until the file is updated.
|
See authorization policy configuration guide for the full list of actions and roles.
Then follow the restart services and check status steps in the general procedure above to complete the upgrade.