warewulf
warewulf copied to clipboard
Debian and Ubuntu support
When if not now is the best timing for full Debian support?
@severgun I think the main thing we need is someone on the team to actually be using Warewulf on Debian. Is this a capacity in which you'd be interested to participate?
I've just started looking into provisioning Debian bookworm (12) hosts with warewulf 4. Got a simple Debian VM booting using warewulf 4.4.0 so far. Next test is building and running warewulf on Debian itself and seeing where that goes.
My organization is not committed to a specific OS at this time but we are coming up on the end of the CentOS 7 lifecycle and given the recent upheaval in the Enterprise Linux space, we're looking at our options, including Debian. Should we at some point decide that Debian is viable and suitable for our HPC and HPC-adjacent use cases, and end up using warewulf to deploy it, I'll circle back to this community and offer whatever contributions we can to helping support Debain with warewulf.
Provisioning the client is in my eyes the bigger hurdle. The server itself should be straightforward, as the warewulf server itself is in golang and so self consistent. You might want to modify the host templates, as debian might have these configuration files in different places.
You might also want to consider openSUSE/SUSE as an alternative to EL.
I have successfully tested warewulf 4.4.1 on Debian bookworm, for both server (warewulfd
, isc-dhcp-server
, atftpd
, nfs-server
) and client (wwclient
).
The server install requires a couple very minor tweaks that are expected for distro differences (package names, a path here or there, systemd service names, etc.). The overlays provided by warewulf already appear to support Debian-style systems (presumably for Ubuntu?).
The container image build looks very similar to how Rocky Linux or openSUSE Leap containers are built in the warewulf-node-images
repo:
FROM debian:12.0-slim
RUN apt-get -y update && apt-get -y upgrade && \
apt-get -y install \
coreutils \
cpio \
ifupdown \
linux-image-amd64 \
nfs-common \
openssh-server \
openssh-client \
rsyslog \
vim \
wget \
rdma-core && \
apt-get autoclean
COPY excludes /etc/warewulf/
COPY container_exit.sh /etc/warewulf/
CMD [ "/bin/echo", "-e", "This is a Debian container for provisioning with warewulf 4" ]
Of course, many things are still missing from my test environment for a useful HPC, cloud, etc. deployment but the fundamentals of warewulf 4 appear to be functional on Debian at least.
Thanks for working on this, @rthomson! Do you have any experience with Debian packaging? I think getting a deb built would be great.
And feel free to submit a PR over at https://github.com/hpcng/warewulf-node-images for a Debian-based compute node image, too.
Unfortunately, I do not have any experience with Debian packaging but I would be willing to look into packaging warewulf debs (and maintaining Debian images in the https://github.com/hpcng/warewulf-node-images repo) if we end up going down the Debian path at my org.
@rthomson , I'm trying to get it to run on Ubuntu and so far I'm having trouble with tftp. I'm using atftpd
and I configured systemd name in warewulf.conf
. Is there anything special you did to tftp configuration to get it to work ? The correct .kpxe file is in tftp dir and I've verified it is accessible via tftp. Node gets through DHCP but server then doesn't respond to tftp request:
21:30:51.945436 IP compute000-default.2075 > warewulf.tftp: TFTP, length 43, RRQ "/warewulf/x86_64.kpxe" octet blksize 1456
Thanks!
@mmarkoc I'm not sure if this is your issue but by default, atftpd
uses /srv/tftp
as the directory to serve up whereas the default warewulf location, and RHEL equivalent, is /var/lib/tftpboot
. You either have to update the TFTPDIR
var in Defaults.mk
prior to building warewulf from source on Debian/Ubuntu to get warewulf to install the PXE bits into the "right" place (or change the default atftpd
config to use /var/lib/tftpboot
instead, or symlink /srv/tftp
to /var/lib/tftpboot
, etc.)
Besides the instillation process warewulf when the iPXE binaries are placed in the tftp root directory, warewulf doesn't change anything there. The wwctl configure tftp
just copies the binaires again to the configured directory.
As soon as the iPXE binaries is downloaded, all the rest works over http without any external services.
I'm putting this in __future__
but just as a matter of organization. If someone wants to work on it to see it in a specific milestone, let me know!
I was also successful in deploying the warewulf server on ubuntu 22.04 and provisioning the test node. I also do not have experience with Debian packaging but would love to help with that, as well as Ubuntu
image https://github.com/hpcng/warewulf-node-images if there's interest.
@mmarkoc having a ready to use Ubuntu
image under https://github.com/hpcng/warewulf-node-images would be a great step forward and be much more useful than a deb package of warewulf.
The source installation of warewulf on the server isn't that big challenge as you only need a go compiler and the gpgme library. So these requirements are not that hard.
I added Ubuntu to the title here as I think doing both at the same time makes sense.
I have successfully tested warewulf 4.4.1 on Debian bookworm, for both server (
warewulfd
,isc-dhcp-server
,atftpd
,nfs-server
) and client (wwclient
).The server install requires a couple very minor tweaks that are expected for distro differences (package names, a path here or there, systemd service names, etc.). The overlays provided by warewulf already appear to support Debian-style systems (presumably for Ubuntu?).
I have successfully tested a different combination for the server (warewulfd
, dnsmasq
, tftpd-hpa
, nfs-server
).
Using Warewulf 4.4.0-1 on Debian 12.2.0 on a virtual machine.
Only needed to apply the correct systemd service names in warewulf.conf; no need of changing paths.
As for node image, I've simply built one from the Dockerfile available in https://github.com/hpcng/warewulf/blob/development/userdocs/debian/ and it booted and worked as expected.
I don't know if this is a good combination of services, since I am not a real system administrator. I'm just a scientist (and this is my first contribution to a project on github ever). I hope this is of any help.
@cfelipesp Thanks for testing this out. Can you please submit the working Dockerfile to https://github.com/hpcng/warewulf-node-images ?
I have written a Debian 12 Quickstart that I would like to share. It is very similar to the current EL Quickstarts. Since now a Debian 12 Conteinerfile has been made available, I think a Debian Quickstart would come handy for newcomers. Should I open a new issue?
Thanks for writing this up @cfelipesp . Just make a PR with the changes, you wont need a separate issue for it.