as of June 17, 2026
I. Install Ubuntu
select language:
English
Keyboard confguration:
Layout: German
Variant: German
Choose the type of installation:
Ubuntu Server (first one)
Network configuration:
IPv4 Method: Manual:
Subnet:172.16.1.0/24
Address: 172.16.1.2
Gateway: 172.16.1.254
Name Server: 172.16.1.1
search domain: empty
Proxy configuration: empty
Guided storage configuration:
[X] use an entire disk (QEMU HARDDISK)
[X] Set up this disk as an LVM group
[ ] Encrypt the LVM group with LUKS
( ) Custom storage layout
Profile configuration:
Your name: empty
Your servers name: saltsrv
Pick a username: netop
Choose a password: choose a strong password
Confirm your password: confirm your strong password
Upgrade to Ubuntu Pro:
( ) Enable Ubuntu Pro
(X) Skip for now
SSH configuration:
[X] Install OpenSSH server (importing a key is not neccessary yet)
Featured server snaps:
none of them
Reboot Machine
If you want to shutdown properly to change the boot order if applicable, just switch with tab to [Help] and Enter shell
now you can shutdown the machine with the command „shutdown now"
II. Install Salt Server
sudo apt update && sudo apt upgrade -y
Install Salt DEBs:
echo 'Package: salt-*
Pin: version 3006.*
Pin-Priority: 1001' | sudo tee /etc/apt/preferences.d/salt-pin-1001
# Ensure keyrings dir exists
mkdir -m 755 -p /etc/apt/keyrings
# Download public key
curl -fsSL https://packages.broadcom.com/artifactory/api/security/keypair/SaltProjectKey/public | gpg --dearmor | sudo tee /etc/apt/keyrings/salt-archive-keyring.pgp > /dev/null
# Create apt repo target configuration
curl -fsSL https://github.com/saltstack/salt-install-guide/releases/latest/download/salt.sources | sudo tee /etc/apt/sources.list.d/salt.sources
sudo apt update
Installing Version 3006 LTS:
sudo apt install salt-master
III. Install Salt GUI
sudo apt install salt-api
sudo systemctl enable salt-api.service
cd /srv
git clone https://github.com/erwindon/SaltGUI.git
Open the master config /etc/salt/master
Find external_auth and configure as following:
external_auth:
pam:
netop:
- .*
- '@runner'
- '@wheel'
- '@jobs'
# for SaltStack 3006 and higher
netapi_enable_clients:
- local
- local_async
- runner
- wheel
At the bottom of this file, also setup the rest_cherrypy server to access SaltGUI from "http://localhost:3333" (or on any of the hostnames that the server has):
rest_cherrypy:
port: 3333
host: 0.0.0.0
disable_ssl: true
app: /srv/SaltGUI/saltgui/index.html
static: /srv/SaltGUI/saltgui/static
static_path: /static
restart services:
pkill salt-master && pkill salt-api && salt-master -d && salt-api -d
⚠️Note: The WebGUI is now accessible under http://localhost:3333
successfully use salt-api with a default PAM need acces:
sudo usermod --append --groups shadow salt