Warewulf

From Leo's Notes
Last edited on 9 October 2025, at 21:16.

Warewulf is an open-source Linux cluster provisioning system. It is typically used for HPC cluster applications, but can also be used for managing environments that need to boot multiple nodes (such as a VM infrastructure environment). Warewulf provides a lightweight and flexible way to boot diskless nodes via PXE and manage node images centrally from a head node.

Common Commands

Purpose Command
Check Warewulf node status wwcctl node status
View node details wwcctl node show <nodename>
Create a new node wwcctl node add <nodename> --ipaddr <ip> --hwaddr <mac>
Set node to use disk as /tmp wwctl node set <nodename> --diskname /dev/sda --diskwipe --partname tmp --partcreate --fsname tmp --fsformat ext4 --fspath /tmp --fswipe
Set boot image for a node wwcctl node set <nodename> --vnfs <image>
Build VNFS (node image) wwcctl overlay build
Import container image wwcctl import docker://rockylinux:9 --name rocky9
Push configuration to nodes wwcctl overlay build

Common Tasks

Install and Configure Warewulf

# wget https://github.com/warewulf/warewulf/releases/download/v4.6.4/warewulf-4.6.4-1.el9.x86_64.rpm
# dnf -y install warewulf-4.6.4-1.el9.x86_64.rpm

## Configure warewulf in /etc/warewulf/warewulf.conf
## Ensure that the IP addresses are set to something that works for your network.
# vi /etc/warewulf/warewulf.conf

## Set up the first boot image and configure the first node
# wwctl image import docker://ghcr.io/warewulf/warewulf-rockylinux:9 rockylinux-9 --build
# systemctl enable --now warewulfd
# wwctl profile set default --image rockylinux-9
# wwctl node add node01  --ipaddr=172.19.0.101 --hwaddr=02:01:01:58:00:06 --gateway 172.19.0.1
# wwctl configure --all

At this point, you should have a DHCP and TFTP running on the system. NFS server should also be working if that is something you enabled in the configuration file.

Verify the state of warewulf by running:

# warewulf status

Troubleshooting

No network gateway

There doesn't seem to be a way to define gateways in warewulf's managed dhcp.

Edit /etc/warewful/warewulf.conf and set the dhcp template to 'static', then wwctl overlay edit host etc/dhcpd.conf.ww and add the following within the host definition.

{ {- if $netdevs.Gateway} }
    option routers { {$netdevs.Gateway} };
    { {- end } }