MicroOS - headless install - how?

I apologize if it was asked before but I searched/looked everywhere, and tried all I can imagine with no luck.

I need to do a quite primitive task but seems not with MicroOS: install it on my Promox server in a headless mode (no UI interaction in the installation) via Packer. As Proxmox doesn’t support the qcow2 installation out of the box (so no cloud-init support with microos-OpenStack-cloud ISOs for me), I was forced to use the MicroOS SelfInstall ISO.
My goal #1 with Packer+MicroOS is just to auto-install MicroOS, set a custom password or ssh key for the root user, and do all the configuration via SSH (ansible).
I know about ignition and it does work for me to customize the root user, BUT it runs only after the OS is installed.

Problem: the SelfInstall ISO has its UI which asks whether I want to delete all data from /dev/sda upon the installation, and this UI interaction is my problem.

I know about the Autoyast engine (even though none of the Microos docs say it is supported by MicroOS). I prepared the autoinst.xml config file, created an ISO with it, and attached it to the Proxmox’s VM via the Hardware tab (same as with the ignition config which works for me). The ISO’s label was set ‘OEMDRV’ as Autoyast docs suggest to auto-discover it by the installtion.
Firstly, I was thinking to test the headless installation manually, so when I spin up the VM the installation dialog appears with the ‘Install Microos’, so according to all the docs I’ve read I need to add the ‘autoyast=device:///autoinst.xml’ to the ‘linux ($root)/boot/…’ Grub’s command so the installer will look across all attached devices for my ~/autoinst.xml file with no UI interaction. I did it, I tried all possible variations (device:///, file:///, …) BUT the installation kept asking that UI question.
Then I entered the grub command line (press ‘c’) and ‘ls’ showed me these devices:
(hd0) (proc) (cd) (cd,msdos2) (cd,msdos1)
where hd0 - my VM disk, cd - attached CD with the installation ISO.
So there was no CD-ROM with my autoinst.xml. I googled and seems Grub ‘attaches’ only the CD with the installation ISO and VM’s disk. Google suggested to ‘instmod ata’ in Grub shell but it gave me ‘instmod command not found’. So I`m stuck here.

Also, I found a Reddit thread with the same question where @RBrownSUSE suggested to ‘set kiwi_oemunattended=1 in the boot parameters’ which doesn’t work when attaching this param both to the ‘linux …’ and ‘initrd …’ commands. The provided link there didn’t bring any help as well.

My findings:

  • the ISO with autoinst.xml isn’t accessible from Grub (installation) → no headless installation.
  • kiwi_oemunattended=1 isn’t applied to the kernel nor initrd.

so how the heck the headless installation can be run with MicrOS?
Sorry for a long story but this primitive task took a lot of time with no luck which drives me crazy.

@microarm Hi and welcome to the Forum :smile:
I use the self install image on the storage device and combustion on a USB device, boot done and just ssh onto the system… Both bare-metal and Vagrant boxes.

Hi @malcolmlewis,

Thanks for sharing your experience. Are you running a headless installation?
I`m sure combustion will work same as ignition because it’s run after the installation.

@microarm yes, combustion works better IMHO :wink: These are Beelink and Benns systems, no keyboard, mouse or monitor. Just use a USB to M.2 device to zcat the self image onto, eg;

xzcat openSUSE-MicroOS.x86_64-16.0.0-SelfInstall-Snapshot2023xxxx.raw.xz | dd bs=4M of=/dev/sda iflag=fullblock oflag=direct

Pop it back into the system, plug in USB, power on, give it a couple of minutes and ssh onto the system… I did use Vagrant with a vm to test the whole process…