virt manager would be closer to hardware, but a time sink to setup
proxmox vm should also work fine.
File object
wwsh file list | grep apptainer
apptainer.conf : rwxr-xr-x 1 root root 13094 /etc/apptainer/apptainer.conf
apptainer.conf : rw-rw-r-- 1 root root 13094 /etc/apptainer/apptainer.conf
# duplicate filename is allowed.
# would need object id to manipulate them
wwsh file print apptainer.conf
#### apptainer.conf ###########################################################
apptainer.conf : ID = 839
apptainer.conf : NAME = apptainer.conf
apptainer.conf : PATH = /etc/apptainer/apptainer.conf
apptainer.conf : ORIGIN = /etc/warewulf/files/apptainer.conf
apptainer.conf : FORMAT = UNDEF
apptainer.conf : CHECKSUM = 4d5e790be2ab6bebfa7cb75f19d902ea
apptainer.conf : INTERPRETER = UNDEF
apptainer.conf : SIZE = 13094
apptainer.conf : MODE = 0755
apptainer.conf : UID = 0
apptainer.conf : GID = 0
#### apptainer.conf ###########################################################
apptainer.conf : ID = 1599
apptainer.conf : NAME = apptainer.conf
apptainer.conf : PATH = /etc/apptainer/apptainer.conf
apptainer.conf : ORIGIN = /etc/warewulf/files/apptainer.conf
apptainer.conf : FORMAT = UNDEF
apptainer.conf : CHECKSUM = 4d5e790be2ab6bebfa7cb75f19d902ea
apptainer.conf : INTERPRETER = UNDEF
apptainer.conf : SIZE = 13094
apptainer.conf : MODE = 0664
apptainer.conf : UID = 0
apptainer.conf : GID = 0
wwsh file print --lookup=id 839
wwsh file delete --lookup=id 839
Files on boot server
ensure these files are present. UEFI may need additional config.
/var/lib/tftpboot/warewulf/
/var/lib/tftpboot/warewulf/ipxe
/var/lib/tftpboot/warewulf/ipxe/bin-i386-pcbios
/var/lib/tftpboot/warewulf/ipxe/bin-i386-pcbios/undionly.kpxe
/var/lib/tftpboot/warewulf/ipxe/bin-i386-pcbios/undionly.kpxe-old
/var/lib/tftpboot/warewulf/ipxe/bin-x86_64-efi
/var/lib/tftpboot/warewulf/ipxe/bin-x86_64-efi/snp.efi
/var/lib/tftpboot/warewulf/ipxe/bin-i386-efi
/var/lib/tftpboot/warewulf/ipxe/bin-i386-efi/snp.efi
/srv/warewulf/initramfs/x86_64/capabilities/provision-adhoc
/srv/warewulf/initramfs/x86_64/capabilities/provision-files
/srv/warewulf/initramfs/x86_64/capabilities/provision-selinux
/srv/warewulf/initramfs/x86_64/capabilities/provision-vnfs
/srv/warewulf/initramfs/x86_64/capabilities/setup-filesystems
/srv/warewulf/initramfs/x86_64/capabilities/transport-http
/srv/warewulf/initramfs/x86_64/capabilities/setup-ipmi
# wwsh bootstrap rebuild # should generate a series of files like:
/srv/warewulf/bootstrap/x86_64/6/kernel
/srv/warewulf/bootstrap/x86_64/6/cookie
/srv/warewulf/bootstrap/x86_64/6/initfs.gz
/srv/warewulf/ipxe/cfg/ac:1f:6b:a5:9c:f6
/var/chroot
eg add link in form of /var/lib/docker -> /local/docker
cd /var/chroot/VNFSNAME/var/lib
ln -s /local/docker docker
then need to update ?
wwvnfs --chroot /var/chroots/NVFSNAME
?
there is this --hybridpath=/vnfs thing?
ref:
https://www.admin-magazine.com/HPC/Articles/warewulf_cluster_manager_completing_the_environment
https://warewulf3.readthedocs.io/en/latest/subprojects_components_plugins/vnfs/
pullvnfs does this, without the hybrid option
wwvnfs -y --chroot=$CHROOT_BASE/$DIST-$BRANCH $DIST-$BRANCH
special object config
custom object
wwsh object modify -s LASTOCTET=5 s00
wwsh object modify -s LASTOCTET=100 n00
wwsh object modify -s LASTOCTET=101 n01
wwsh object print -p :all | egrep 'node|name|LASTOCTET'
wwsh --debug file sync # debug mode pring lot of perl code state. eg grep ERROR or WARNING
config troubleshooting
wwsh file sync barf like:
WARNING in Warewulf::DataStore::SQL::BaseClass->persist()/861: Unable to execute set lookup query: Data too long for column 'value' at row 1
or
wwsh file import /etc/warewulf/files/node_exporter.service --mode=0644 --path=/etc/systemd/system/multi-user.target.wants/node_Exporter.service
wwsh file set node_exporter.service --path=/etc/systemd/system/multi-user.target.wants/node_Exporter.service
WARNING: Unable to execute set lookup query: Data too long for column 'value' at row 1
it is cuz Destination PATH is limited to at most 65 chars! use a shorter PATH :-\
tftp troubleshooting
tftp (and dhcpd) needs to be running on the warewulf server.
see general_unix.html#tftp for troubleshooting info.
PXE vs warewulf boot
The first part of the boot is network pxe boot, where the bootstrap image is transferred and the machine booted from.
Stage 2 is a swap to warewulf that utilize VNFS, where the OS is hybridized between ram and /var/chroots NFS mount.
kargs
--kargs=\'$KARGS\'
with KARGS='"console=tty0 console=ttyS1,115200n8"'
wwsh provision print for kargs sectino need to have "" in them if there is space in it.
really old wwulf can't handle space even with the quotes.
"console=tty0 console=ttyS1,115200n8" # this maybe bad, VGA will not have rest of the boot message, and ipmi sol activate should obliviate the need for this.
acpi_irq_nobalance
"net.ifnames=0 biosdevname=0"
net.ifnames=0 # use predictable name (eth0, eth1?)
biosdevname=0 # set to 0 use traditional name. "Dell method"
# use old eth0 naming convention ?
# still in use by w0000 as of 2023.02.13
iommu=pt
# this is needed for Mellanox CX-5, CX-6 Ethernet to work with AMD processor due to memory management
# https://nvcrm.lightning.force.com/lightning/r/Knowledge__kav/ka08Z000000Tm5GQAS/view?ws=%2Flightning%2Fr%2FCase%2F5008Z00002Fn4VSQAZ%2Fview
TBD int ref
httpd troubleshooting
Once PXE boot complete via tftp, the image invoke HTTP GET to fetch files from the warewulf servers.
these files are expected to be stored in:
/srv/warewulf
/var/log/httpd/ error_log could tell of potential problem, eg fetching file for mac address that isn't expected
Typewriter monospaced fonts in here.
This is another line.
hoti1
sn5050
psg101 sn50 tin6150