224 lines
5.5 KiB
ReStructuredText
224 lines
5.5 KiB
ReStructuredText
===============
|
|
Quick Reference
|
|
===============
|
|
|
|
A quick reference for common day-to-day Warewulf operations.
|
|
|
|
Important paths
|
|
===============
|
|
|
|
.. code-block:: text
|
|
|
|
# Configuration
|
|
/etc/warewulf/warewulf.conf # Main server configuration
|
|
/etc/warewulf/nodes.conf # Node database
|
|
/etc/warewulf/auth.conf # API authentication
|
|
|
|
# Images (container filesystems)
|
|
/var/lib/warewulf/chroots/ # Image root directories
|
|
|
|
# Overlays
|
|
/usr/share/warewulf/overlays/ # Distribution-provided overlays
|
|
/var/lib/warewulf/overlays/ # Site-local overlays
|
|
/var/lib/warewulf/provision/ # Built overlay images (per-node)
|
|
|
|
# Logs
|
|
journalctl -u warewulfd # Warewulf daemon logs
|
|
|
|
Server management
|
|
=================
|
|
|
|
.. code-block:: shell
|
|
|
|
# Configure all external services (DHCP, TFTP, NFS, SSH, hosts)
|
|
wwctl configure --all
|
|
|
|
# Configure individual services
|
|
wwctl configure dhcp
|
|
wwctl configure tftp
|
|
wwctl configure nfs
|
|
wwctl configure ssh
|
|
wwctl configure hostfile
|
|
|
|
# Restart the Warewulf daemon
|
|
systemctl restart warewulfd
|
|
|
|
Listing nodes and profiles
|
|
===========================
|
|
|
|
.. code-block:: shell
|
|
|
|
# List all nodes (summary)
|
|
wwctl node list
|
|
|
|
# List nodes with network interface details
|
|
wwctl node list --net
|
|
|
|
# List nodes with all fields (includes unset/inherited values)
|
|
wwctl node list --all n1
|
|
|
|
# List nodes with IPMI settings
|
|
wwctl node list --ipmi
|
|
|
|
# List specific nodes using hostlist syntax
|
|
wwctl node list n[1-10]
|
|
|
|
# Show current node boot status
|
|
wwctl node status
|
|
|
|
# List all profiles
|
|
wwctl profile list
|
|
|
|
# List all fields of a profile (includes inherited values)
|
|
wwctl profile list default --all
|
|
|
|
Adding a node
|
|
=============
|
|
|
|
.. code-block:: shell
|
|
|
|
# Add a single node with an IP address
|
|
wwctl node add n1 --ipaddr=10.0.2.1
|
|
|
|
# Add a range of nodes (IP address auto-increments)
|
|
wwctl node add n[2-4] --ipaddr=10.0.2.2
|
|
|
|
# Add a node with multiple options: image, network interface, kernel args, and profile
|
|
wwctl node add n1 \
|
|
--ipaddr=10.0.2.1 \
|
|
--netmask=255.255.255.0 \
|
|
--netdev=eno1 \
|
|
--hwaddr=00:00:00:00:00:01 \
|
|
--image=rockylinux-9 \
|
|
--profile=default \
|
|
--kernelargs="quiet crashkernel=no"
|
|
|
|
# Un-set a field (revert to profile/default value)
|
|
wwctl node set n1 --image=UNDEF
|
|
|
|
Network interfaces
|
|
==================
|
|
|
|
.. code-block:: shell
|
|
|
|
# Set the primary network interface
|
|
wwctl node set n1 \
|
|
--netdev=eno1 \
|
|
--hwaddr=00:00:00:00:00:01 \
|
|
--ipaddr=10.0.2.1 \
|
|
--netmask=255.255.255.0
|
|
|
|
# Add a secondary network (e.g. InfiniBand)
|
|
wwctl node set n1 \
|
|
--netname=infiniband \
|
|
--type=infiniband \
|
|
--netdev=ib0 \
|
|
--ipaddr=10.0.3.1 \
|
|
--netmask=255.255.255.0
|
|
|
|
# Configure a VLAN interface
|
|
wwctl node set n1 \
|
|
--netname=vlan42 \
|
|
--netdev=vlan42 \
|
|
--type=vlan \
|
|
--ipaddr=10.0.42.1 \
|
|
--netmask=255.255.252.0 \
|
|
--nettagadd="vlan_id=42,parent_device=eth0"
|
|
|
|
# Set DNS on an interface
|
|
wwctl node set n1 --nettagadd="DNS1=1.1.1.1"
|
|
|
|
Images
|
|
======
|
|
|
|
.. code-block:: shell
|
|
|
|
# Import an image from Docker Hub (or any OCI registry)
|
|
wwctl image import docker://ghcr.io/warewulf/warewulf-rockylinux:9 rockylinux-9
|
|
|
|
# Import with registry credentials
|
|
wwctl image import \
|
|
--username myuser --password mysecret \
|
|
docker://registry.example.com/myimage:latest myimage
|
|
|
|
# Import from a local directory or tarball
|
|
wwctl image import ./rockylinux-9/ rockylinux-9
|
|
wwctl image import rockylinux-9.tar rockylinux-9
|
|
|
|
# List available images
|
|
wwctl image list
|
|
|
|
# Open an interactive shell inside an image
|
|
wwctl image shell rockylinux-9
|
|
|
|
# Run a single command inside an image (e.g. install packages)
|
|
wwctl image exec rockylinux-9 -- dnf -y install vim htop
|
|
|
|
# Rebuild the image archive (after making changes)
|
|
wwctl image build rockylinux-9
|
|
|
|
# Assign an image to a node or profile
|
|
wwctl node set n1 --image=rockylinux-9
|
|
wwctl profile set default --image=rockylinux-9
|
|
|
|
IPMI
|
|
====
|
|
|
|
.. code-block:: shell
|
|
|
|
# Configure IPMI settings on the default profile
|
|
wwctl profile set default \
|
|
--ipminetmask=255.255.255.0 \
|
|
--ipmiuser=admin \
|
|
--ipmipass=passw0rd \
|
|
--ipmiinterface=lanplus \
|
|
--ipmiwrite
|
|
|
|
# Set the IPMI address on a specific node
|
|
wwctl node set n1 --ipmiaddr=192.168.2.1
|
|
|
|
# List IPMI settings
|
|
wwctl node list --ipmi
|
|
|
|
# Power commands
|
|
wwctl power status n[1-10]
|
|
wwctl power on n1
|
|
wwctl power off n1
|
|
wwctl power cycle n1
|
|
wwctl power reset n1
|
|
|
|
# Open serial-over-LAN console
|
|
wwctl node console n1
|
|
|
|
Overlays
|
|
========
|
|
|
|
.. code-block:: shell
|
|
|
|
# List all available overlays
|
|
wwctl overlay list
|
|
|
|
# Build overlays for all nodes
|
|
wwctl overlay build
|
|
|
|
# Build overlays for a specific node
|
|
wwctl overlay build n1
|
|
|
|
# Create a new site-local overlay
|
|
wwctl overlay create myoverlay
|
|
|
|
# Import a file from the host into an overlay
|
|
wwctl overlay import myoverlay /etc/motd
|
|
|
|
# Edit a file in an overlay (opens $EDITOR)
|
|
wwctl overlay edit myoverlay /etc/motd
|
|
|
|
# Show an overlay file (optionally rendered for a specific node)
|
|
wwctl overlay show myoverlay /etc/motd
|
|
wwctl overlay show myoverlay /etc/motd.ww --render=n1
|
|
|
|
# Assign overlays to all nodes via the default profile
|
|
wwctl profile set default \
|
|
--system-overlays="wwinit,wwclient,fstab,hostname,ssh.host_keys,NetworkManager" \
|
|
--runtime-overlays="hosts,ssh.authorized_keys"
|