Warewulf: Difference between revisions
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 } }