3

Our previous ISO generation method:

  1. Download ISO
  2. Mount ISO
  3. Copy files from iso to new directory
  4. Modify bootmenu.cfg, grub.cfg, etc. files
  5. Add preseed
  6. build the ISO using xorriso

We utilize cloud-init for VM's on our hypervisors just fine via ansible and a few other automation methods. So we have no issues with cloud-init. However to adapt our process to the new "cloud-init" only method due to the removal of the Debian installer as stated here: Ubuntu Automated Install Wiki Page

All of their examples seem to be for KVM VM's. There is no documentation that I could locate on how to accomplish the same task for a physical server without PXE booting.

According to their Autoinstall Quickstart, every "automated" installation requires mounting multiple images/files. Which is unacceptable when attempting to boot multiple automated installs in a crowded data center/over IDRAC.

We have looked into MAAS, and used it in the past. Quite simply, PXE booting is not the option we would prefer for some of these instances.

How do I return back to being able to generate a single, mountable, and bootable ISO file using the preferred cloud-init method?

TLDR; we used to create preseed iso images using mounting the ubuntu provided iso, modifying the image files and then recreating a burnable single ISO using xorriso. How do I accomplish the same task via cloud-init.

Researched options:

NoCloud - Rejected because once again only examples are using VM's I would be happy to use a cloud-init file if I could insert it into an iso some how.

CENTOS forum: The best guide I could find for the cloud init method.

Ubuntu's Quickstart Guide - Also only lists VM's in examples

Openstack's Image Guide - Some information, nothing about building an actual ISO or image from it.

When we create our ISO's we use a linux command in the grub menu to start our automated installs:

menuentry "Install Ubuntu Server for IT" {
    set gfxpayload=keep
    linux   /install/vmlinuz  file=/cdrom/preseed/customubuntu.preseed debian-installer/locale=en_US console-setup/ask_detect=false console-setup/layoutcode=us keyboard-configuration/xkb-keymap=us auto=true priority=critical quiet ---
    initrd  /install/initrd.gz
}

How can I create a good grub menu entry command to use cloud-init files on the same filesystem/ISO?

Something like:

linux   /install/vmlinuz  file=/cdrom/cloudinit/userdata file=/cdrom/cloudinit/metadata console-setup/ask_detect=false console-setup/layoutcode=us keyboard-configuration/xkb-keymap=us auto=true priority=critical quiet ---

UPDATE: s3rj1k's GIST Provides a very interesting config similar to our old method of preseeding. I am testing it now.

  • 1
    Relevant: Testing thread on 20.04 autoinstalls: https://discourse.ubuntu.com/t/please-test-autoinstalls-for-20-04/15250 – user535733 May 06 '20 at 19:50
  • Very relevant thank you for the inclusion. Reading now. – Matthew Williams May 06 '20 at 21:13
  • 1
    I would also point out that Andrew's answer over here was super helpful for me in a similar situation: https://askubuntu.com/questions/1235723/automated-20-04-server-installation-using-pxe-and-live-server-image/1235724 – Matt Causey Apr 06 '21 at 23:52

1 Answers1

3

So since there are no answers forthcoming I'll answer my own question.

This forum thread Ubuntu Discourse Discussion Along with: s3rj1k's GIST

Are providing a working iso creation model for the new auto-installer. The current issue revolves around user-data and identities which make the auto-installed ISO not have really usable users, unless you use s3rj1k's method and just modify root and expire it shortly after creation, which works, but has some security concerns imo.