Warewulf: Difference between revisions

From Leo's Notes
This page was last edited on 9 October 2025, at 21:16.
Created page with "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 == {|class="wikitable" ! Purpose ! Command |- | Check Warewul..."
 
No edit summary
 
Line 16: Line 16:
| Create a new node                 
| Create a new node                 
| {{code|wwcctl node add <nodename> --ipaddr <ip> --hwaddr <mac>}}
| {{code|wwcctl node add <nodename> --ipaddr <ip> --hwaddr <mac>}}
|-
|Set node to use disk as /tmp
|<code>wwctl node set <nodename> --diskname /dev/sda --diskwipe --partname tmp --partcreate --fsname tmp --fsformat ext4 --fspath /tmp --fswipe</code>
|-
|-


Line 37: Line 40:
===Install and Configure Warewulf===
===Install and Configure Warewulf===


{{highlight|lang=terminal|code=
{{highlight
# wget https://github.com/warewulf/warewulf/releases/download/v4.6.4/warewulf-4.6.4-1.el9.x86_64.rpm
| lang = terminal
| code = # 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
# dnf -y install warewulf-4.6.4-1.el9.x86_64.rpm


Line 49: Line 53:
# systemctl enable --now warewulfd
# systemctl enable --now warewulfd
# wwctl profile set default --image rockylinux-9
# wwctl profile set default --image rockylinux-9
# wwctl node add node01  --ipaddr=172.19.0.101 --hwaddr=02:01:01:58:00:06
# wwctl node add node01  --ipaddr=172.19.0.101 --hwaddr=02:01:01:58:00:06 --gateway 172.19.0.1
# wwctl configure --all
# wwctl configure --all
}}
}}
Line 58: Line 62:
{{highlight|lang=terminal|code=
{{highlight|lang=terminal|code=
# warewulf status
# warewulf status
}}
== Troubleshooting ==
=== No network gateway ===
There doesn't seem to be a way to define gateways in warewulf's managed dhcp.
Edit <code>/etc/warewful/warewulf.conf</code> and set the dhcp template to 'static', then <code>wwctl overlay edit host etc/dhcpd.conf.ww</code> and add the following within the host definition.
{{Highlight
| code = { {- if $netdevs.Gateway} }
    option routers { {$netdevs.Gateway} };
    { {- end } }
| lang = text
}}
}}

Latest revision as of 21:16, 9 October 2025

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 } }