How to provision Ubuntu 16.04 with updated netboot image

Hello,

I’m not sure where would be a good place to post this, but I figured I would get this up here in case it can help anyone else. There apparently was a new update in the xenial netboot image that now segfaults on installation (https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1816846). They are not anticipating a fix, and if they were to give an official fix, it would be to use the xenial-updates version. So I had to update my Ubuntu 16.04 OS release to xenial-updates to force it to use the latest, updated version of the netboot image. Once I had done that, I had also experienced an issue where the latest kernel version did not have a linux-signed-image deb package. I was able to set the preseed-kernel-image variable to the latest one with a valid linux-signed-image package, which then resulted in a successful installation. Hopefully this helps someone else who is searching for a solution!

3 Likes

Thanks, I moved OP to the tutorials section of our site and renamed it properly.

Could you please offer slightly more detail? I’m having this issue myself at the moment.

So in your Preseed Default Provisioning template, there is a parameter that you can assign called preseed-kernel-image. The section looks like this:

<% if host_param('preseed-kernel-image') -%>
# Install different kernel
d-i base-installer/kernel/image string <%= host_param('preseed-kernel-image') %>
<% end %>

In your Ubuntu 16.04 host group, you can make your parameter there, of the same name, with whatever value you want, we use linux-image-4.4.0-142-generic since that seems to be the most stable.

In addition to that, we’ve also updated our Ubuntu OS entry on Foreman. We’ve updated the release to xenial-updates.

We haven’t had any issues imaging Ubuntu 16.04 machines from Foreman since then.

1 Like

I’m trying to do the same thing here to get Ubuntu 16.04 working via foreman. I can’t find the right place to change it from xenial to xenial-updates. Changing Release Name in OS broke the install. Then I tried to update just mirror/udeb/suite string xenial-updates in the Preseed Template.

Should I just open a new thread for this?

What does the installer say? Or what step does it die on? We mirror us.archive.ubuntu.com internally and image from that. We are using xenial-updates in the Release name for the OS entry. Our Ubuntu installer media points to effectively http://us.archive.ubuntu.com/ubuntu/. If you go down that path /dists/xenial-updates/main you can see the different installers.

This network installer is what will be able to pull down the preseeds for you. Are you seeing it actually booting into the purple Ubuntu installer? If so, it’s getting the image, your preseeds might have an error in it now. You can preveiw them with your host info to see what the error is if that is the case.

Thanks for the reply. We found the problem was that we edited Release name instead of creating a new OS. I guess internally this never caused Foreman to download new linux and ram disk images. Maybe this will help someone else in the future.

1 Like

Another issue people might run into is documented here: Foreman auto-updating host operating system. Even if you create a xenial-updates OS it will likely get overwritten when puppet runs on the host and facts get returned. We had to create a new PXE template that specified the xenial-updates image and ramdisk and remove everything that relied on release in all the templates.