Server Configuration
By default, the Warewulf server configuration is located at
/etc/warewulf/warewulf.conf
. This is a YAML-formatted configuration file
used by to configured the Warewulf server itself and its external services.
An initial warewulf.conf
is packaged with Warewulf. Each section is covered
in detail below.
Once Warewulf has been installed and configured:
run
wwctl configure --all
to reconfigure external servicesrun
systemctl restart warewulfd
to apply the configuration to the Warewulf server
Re-run both of these commands when making changes to warewulf.conf
.
ipaddr: 192.168.1.1
netmask: 255.255.255.0
network: 192.168.1.0
warewulf:
port: 9873
secure: true
update interval: 60
autobuild overlays: true
host overlay: true
grubboot: false
dhcp:
enabled: true
template: default
systemd name: dhcpd
tftp:
enabled: true
tftproot: /var/lib/tftpboot
systemd name: tftp
ipxe:
00:0B: arm64-efi/snponly.efi
"00:00": undionly.kpxe
"00:07": ipxe-snponly-x86_64.efi
"00:09": ipxe-snponly-x86_64.efi
nfs:
enabled: true
systemd name: nfsd
ssh:
key types:
- ed25519
- ecdsa
- rsa
- dsa
image mounts:
- source: /etc/resolv.conf
dest: /etc/resolv.conf
paths:
bindir: /usr/bin
sysconfdir: /etc
localstatedir: /var/lib
cachedir: /var/cache
ipxesource: /usr/share/ipxe
srvdir: /var/lib
firewallddir: /usr/lib/firewalld/services
systemddir: /usr/lib/systemd/system
datadir: /usr/share
wwoverlaydir: /var/lib/warewulf/overlays
wwchrootdir: /var/lib/warewulf/chroots
wwprovisiondir: /var/lib/warewulf/provision
wwclientdir: /warewulf
warewulf
ipaddr: 192.168.1.1
netmask: 255.255.255.0
network: 192.168.1.0
warewulf:
port: 9873
secure: true
update interval: 60
autobuild overlays: true
host overlay: true
grubboot: false
ipaddr
: The Warewulf server address on the cluster network. This configuration must match the server’s IP address.If
ipaddr
is specified as a CIDR address,netmask
andnetwork
may be omitted.netmask
: The netmask for the cluster network.network
: The address of the cluster network itself.warewulf:port
: This is the port that the Warewulf web server will be listening on. It is recommended not to change this so there is no misalignment with node’s expectations of how to contact the Warewulf service.warewulf:secure
: Whentrue
, this limits the Warewulf server to only respond to runtime overlay requests originating from a privileged port. This prevents non-root users from requesting the runtime overlay, which may contain sensitive information.When
true
,wwclient
uses TCP port 987 by default. (A different port can be specified atwwclient:port
.)Changing this option requires rebuilding node overlays and rebooting compute nodes to configure them to use a privileged port for wwclient.
warewulf:update interval
: This defines the frequency (in seconds) with which the Warewulf client on the compute node fetches overlay updates.warewulf:autobuild overlays
: Controls whether per-node overlays will automatically be rebuilt. (e.g., when an underlying overlay is changed)Overlay autobuild is not 100% reliable; but it is particularly useful for building overlays for new nodes.
warewulf:host overlay
: Controls whether the specialhost
overlay is applied to the Warewulf server during configuration. (The host overlay is used to configure external services.)warewulf::grubboot
: Controls whether iPXE (default) or GRUB is used as the network bootloader.
dhcp
The DHCP external service can be configured explicitly with wwctl configure
dhcp
. This (re)writes the DHCP configuration and enables and (re)starts the
DHCP service.
dhcp:
enabled: true
template: default
systemd name: dhcpd
dhcp:enabled
: Whether Warewulf should configure a DHCP server on the cluster network. Set tofalse
when managing DHCP separately.dhcp:template
An optional DHCP template variable to control the generation of the DHCP template.Specifying
template: static
populatesdhcpd.conf
with static leases for each host, bypassing the DHCP range. (Runwwctl configure dhcp
to updatedhcpd.conf
when nodes are added, removed, or changed.)dhcp:range start
anddhcp:range end
: Defines a dynamic DHCP range to use when provisioning cluster nodes. This address range must exist in the cluster network defined above. (Otherwise, the DHCP server will fail to start).This range should not overlap with IP addresses assigned to nodes in
nodes.conf
.dhcp:systemd name
: Identifies the systemd service that manages the DHCP service. Used duringwwctl configure dhcp
to restart the service.
tftp
The TFTP external service can be configured explicitly with wwctl configure
tftp
. This writes the appropriate bootloader executables to the TFTP root
directory and enables the TFTP service.
tftp:
enabled: true
tftproot: /var/lib/tftpboot
systemd name: tftp
ipxe:
00:0B: arm64-efi/snponly.efi
"00:00": undionly.kpxe
"00:07": ipxe-snponly-x86_64.efi
"00:09": ipxe-snponly-x86_64.efi
tftp:enabled
: Whether Warewulf should configure a TFTP server on the cluster network. Set tofalse
when managing TFTP separately.tftp:tftproot
: Identifies the local path being served by the managed TFTP server. Warewulf creates awarewulf/
subdirectory and copies iPXE and/or GRUB bootloader files to this location depending on the server configuration.systemd name
: Identifies the systemd service that manages the TFTP service. Used duringwwctl configure tftp
to restart the service.ipxe
: A map of DHCP option architecture-types to the iPXE binary that should be used for that architecture. iPXE binaries are searched for inpaths:ipxesource
. By default, these paths correspond to the location of the correct iPXE binary for each architecture in the distribution iPXE packages; but they can be specified explicitly when providing a local iPXE build.
nfs
The NFS external service can be configured explicitly with wwctl configure
nfs
. This configures the NFS server (particularly /etc/exports
) on the
Warewulf server and enables and starts the NFS service.
nfs:
enabled: true
export paths:
- path: /home
export options: rw,sync
- path: /opt
export options: ro,sync,no_root_squash
systemd name: nfsd
nfs:enabled
: Whether Warewulf should configure an NFS server on the cluster network. Set tofalse
when not required or when managing NFS separately.nfs:export paths
: A list of NFS exports to configure on the Warewulf server. Each export defines apath
to be exported and theexport options
for that export.systemd name
: Identifies the systemd service that manages the NFS service. Used duringwwctl configure nfs
to restart the service.
ssh
New in Warewulf v4.5.1
SSH key types to generate during wwctl configure ssh
. This create the
appropriate host keys (stored in /etc/warewulf/keys/
) and authentication
keys for passwordless ssh
to cluster nodes. It also installs shell profiles
/etc/profile.d/ssh_setup.csh
and /etc/profile.d/ssh_setup.sh
to
initialize authentication keys for new users if and when they log into the
Warewulf server.
ssh:
key types:
- ed25519
- ecdsa
- rsa
- dsa
ssh:key types
: Warewulf generate host keys for each listed key type.
The first listed key type is used to generate authentication ssh keys.
image mounts
A list of paths to temporarily mount from the Warewulf server into an image
during wwctl image exec
and wwctl image shell
, typically to allow them
to operate in the host environment prior to deployment.
image mounts:
- source: /etc/resolv.conf
dest: /etc/resolv.conf
image mounts:source
: The path on the Warewulf server to mount into the image.image mounts:dest
: The path in the image to use for the mount.image mounts::readonly
: Whether the mount should be read-only (true
) or allow writes into the server path (false
).image mounts::copy
: Whentrue
, copy files into the image rather than mount. This is useful for initializing files with a starting value from the Warewulf server that should then be maintained as part of the image.
paths
New in Warewulf v4.5.0
Override paths to images, overlays, and other Warewulf components.
paths:
sysconfdir: /etc
cachedir: /var/cache
ipxesource: /usr/share/ipxe
datadir: /usr/share
wwoverlaydir: /var/lib/warewulf/overlays
wwchrootdir: /var/lib/warewulf/chroots
wwprovisiondir: /var/lib/warewulf/provision
wwclientdir: /warewulf
paths:sysconfdir
: The parent directory for thewarewulf
configuration directory, which storeswarewulf.conf
andnodes.conf
.paths::cachedir
: The parent directory for thewarewulf
cache of OCI images duringwwctl image import
.paths:ipxesource
: Where to get iPXE binaries. These files are copied towarewulf.conf:tftp:tftproot
bywwctl configure tftp
.datadir
: Parent directory for distribution overlays and BMC templates.paths:wwoverlaydir
: Parent directory for site overlays.paths:wwchrootdir
: Parent directory for Warewulf images.paths:wwprovisiondir
: The destination for built images and overlay images.paths:wwclientdir
: Wherewwclient
looks for its configuration on a provisioned node.
wwclient
Configuration for the wwclient
service on cluster nodes.
wwclient:
port: 987
wwclient:port
: The source port used bywwclient
. By default an ephemeral port is selected; butwarewulf.conf:warewulf:secure: true
requires a known privileged port.wwclient
will use the TCP port “987” by default ifsecure: true
; but, if that port is otherwise in use, a different port may be specified.
hostfile
There are no explicit “hostfile” configuration options in warewulf.conf
; but
wwctl configure hostfile
updates the Warewulf server’s /etc/hosts
file
to include expected configuration for the server itself as well as the known
names of the cluster nodes and thier interfaces.
Entries from the Warewulf server’s /etc/hosts
file are distributed to
cluster nodes by the “hosts” overlay.