warewulf icon indicating copy to clipboard operation
warewulf copied to clipboard

Debian and Ubuntu support

Open severgun opened this issue 1 year ago • 17 comments

When if not now is the best timing for full Debian support?

severgun avatar Jun 26 '23 15:06 severgun

@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?

anderbubble avatar Jun 27 '23 04:06 anderbubble

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.

rthomson avatar Jul 13 '23 23:07 rthomson

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.

mslacken avatar Jul 14 '23 05:07 mslacken

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.

rthomson avatar Jul 19 '23 21:07 rthomson

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.

anderbubble avatar Jul 19 '23 22:07 anderbubble

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 avatar Jul 19 '23 23:07 rthomson

@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 avatar Aug 01 '23 21:08 mmarkoc

@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.)

rthomson avatar Aug 01 '23 22:08 rthomson

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.

mslacken avatar Aug 02 '23 07:08 mslacken

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!

anderbubble avatar Sep 13 '23 16:09 anderbubble

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 avatar Sep 13 '23 19:09 mmarkoc

@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.

mslacken avatar Sep 14 '23 08:09 mslacken

I added Ubuntu to the title here as I think doing both at the same time makes sense.

anderbubble avatar Sep 19 '23 21:09 anderbubble

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 avatar Nov 20 '23 13:11 cfelipesp

@cfelipesp Thanks for testing this out. Can you please submit the working Dockerfile to https://github.com/hpcng/warewulf-node-images ?

mslacken avatar Nov 20 '23 14:11 mslacken

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?

cfelipesp avatar Dec 14 '23 13:12 cfelipesp

Thanks for writing this up @cfelipesp . Just make a PR with the changes, you wont need a separate issue for it.

mslacken avatar Dec 14 '23 13:12 mslacken