How to Setup Warewulf Pro - Bonus, Also Using Proxmox
How to Setup Warewulf Pro - Bonus, Also Using Proxmox
Proxmox VE 9.1.1 + Rocky Linux 9.7 + Warewulf Pro 4.6.3 Testing
-
Set up a Rocky Linux 9.7 VM with 4 vCPUs, 4096 MB RAM and a 100GB Disk. Updated all packages to the latest versions.
-
Installed the Depot client:
dnf install -y https://depot.ciq.com/public/download/depot-client/depot/depot.el8.x86_64.rpm
- Logged in with my credentials:
depot login -u <USER> -t <TOKEN>
- Enabled the
warewulf-prorepository:
depot enable warewulf-pro
- Installed the latest version of Warewulf Pro (
4.6.4-1):
dnf install warewulf
- Installed the Warewulf Pro Interface:
dnf -y install cockpit warewulf-cockpit
systemctl enable --now cockpit.socket
- Set up my Warewulf configuration with this file:
sudo tee /etc/warewulf/warewulf.conf <<EOF
WW_INTERNAL: 45
ipaddr: 192.168.2.20
netmask: 255.255.255.0
network: 192.168.2.0
warewulf:
port: 9873
secure: false
update interval: 60
autobuild overlays: true
host overlay: true
syslog: false
datastore: /usr/share
grubboot: false
dhcp:
enabled: true
template: default
range start: 192.168.2.253
range end: 192.168.2.253
systemd name: dhcpd
tftp:
enabled: true
tftproot: /var/lib/tftpboot
systemd name: tftp
ipxe:
"00:00": undionly.kpxe
"00:07": ipxe-snponly-x86_64.efi
"00:09": ipxe-snponly-x86_64.efi
00:0B: arm64-efi/snponly.efi
api:
enabled: true
nfs:
enabled: true
export paths:
- path: /home
export options: rw,sync
mount options: defaults
mount: true
- path: /opt
export options: ro,sync,no_root_squash
mount options: defaults
mount: false
systemd name: nfs-server
container mounts:
- source: /etc/resolv.conf
dest: /etc/resolv.conf
readonly: true
paths:
bindir: /usr/bin
sysconfdir: /etc
localstatedir: /var/lib
ipxesource: /usr/share/ipxe
srvdir: /var/lib
firewallddir: /usr/lib/firewalld/services
systemddir: /usr/lib/systemd/system
wwoverlaydir: /var/lib/warewulf/overlays
wwchrootdir: /var/lib/warewulf/chroots
wwprovisiondir: /var/lib/warewulf/provision
wwclientdir: /warewulf
EOF
- Configured the system:
wwctl configure --all
- Enabled the
warewulfdservice:
systemctl enable --now warewulfd
- Set up this firewalld configuration:
firewall-cmd --permanent --zone=internal --add-interface=ens18
firewall-cmd --permanent --zone=internal \
--add-service=warewulf \
--add-service=dhcp \
--add-service=tftp \
--add-service=nfs
firewall-cmd --reload
- Generated an Admin token for the API:
dnf install -y mkpasswd
echo "users:
- name: admin
password hash: $(mkpasswd --method=bcrypt)" >/etc/warewulf/auth.conf
- Restarted
warewulfd:
systemctl restart warewulfd
- Installed the
slurmoverlays from Depot:
dnf install https://ciq-portal:6l7d-2hjc-2mmq@depot.ciq.com/my/warewulf-pro/warewulf-overlays/Packages/warewulf-overlays-slurm-1.1.0-1.el9.noarch.rpm
wwctl overlay list -a | grep -i slurm
slurm etc/ false
slurm etc/munge/ false
slurm etc/munge/munge.key.ww false
slurm etc/slurm/ false
slurm etc/slurm/cgroup.conf.ww false
slurm etc/sysconfig/ false
slurm etc/sysconfig/slurmd.ww false
- Set my CIQ Portal username and password as credentials:
export WAREWULF_OCI_USERNAME=ciq-portal
export WAREWULF_OCI_PASSWORD=6l7d-2hjc-2mmq
- Imported the
rockylinux-slurm:24image from the Warewulf Pro repository:
wwctl image import docker://depot.ciq.com/warewulf-pro/warewulf-node-images/rockylinux-slurm:24 slurm-24
- Available Warewulf Images after the import:
wwctl image list
IMAGE NAME
----------
slurm-24
- Successfully shelled into the image:
wwctl image shell slurm-24
Image build will be skipped if the shell ends with a non-zero exit code.
[warewulf:slurm-24] /# exit
exit
- Built the image:
wwctl image build slurm-24
- Set the following as runtime overlay for the image:
wwctl profile set default --runtime-overlays=slurm
-
Created a Compute Node VM in Proxmox. The steps were I clicked “Create VM” –> Added a name –> “Next” –> “OS” - Do not use any media –> “System” - “Next” –> “Disks” - “Next” –> “CPU” Cores = 4 –> “Memory” 8096 MiB –> “Network” - Ensured for the “Bridge” device that my virtual interface of “vmbr0” was selected –> “Finish”.
-
(I have attached screenshots of my entire VM Compute Node setup process in Proxmox)
-
Then under “Options”, I changed “Boot Order” so that only “net0” was selected.
-
Then in “Hardware” I acquired the VM’s Mac Address.
-
I then added the Compute Node VM to the Warewulf Controller Node and added its MAC address and assigned it an IP:
wwctl node add compute-node-1 --ipaddr 192.168.2.253 --hwaddr BC:24:11:6D:C6:12 --profile default
- Built the overlays:
wwctl overlay build
- Set the netmask, gateway and DNS for the default profile:
wwctl profile set default -M 255.255.255.0
wwctl profile set default -G 192.168.2.20
- Set the DNS for the
defaultprofile:
wwctl profile set default --nettagadd DNS1=8.8.8.8
wwctl profile set default --nettagadd DNS2=8.8.4.4
- Tested with a community image. I imported the Community Rocky Linux 9 image:
wwctl image import docker://ghcr.io/warewulf/warewulf-rockylinux:9 rockylinux-9
- Built the image afterwards:
wwctl image build rockylinux-9
- Set the image to the
defaultprofile:
wwctl profile set default --image rockylinux-9
-
The community image is then successfully booted on the Compute Node VM.
-
I then set the
defaultprofile to theslurmimage from the Warewulf Pro repository from earlier:
wwctl profile set default --image slurm-24
- This also booted without issue. I could boot the Compute Node with the Warewulf Pro
slurm-24image.