And newest of undocumented features. If you modify /autoinstall.yaml in early-commands, you aren’t warned that indeed that’s not exactly copy of your average user-data anymore. It’s mostly the same, except - you have to REMOVE “autoinstall:” line. Otherwise it fails the check. This is with 20.04.1 and “refresh-installer”. But hey, I’ve finally solved this, I only needed to do another 20 reboots, and start recording screen to catch all the errors.
In case anyone wonders what I’m trying here, if you use this in your user-data during PXE boot:
early-commands: - curl -G -o /autoinstall.yaml http<myserver>/user-data -d "mac=$(ip a | grep ether | cut -d ' ' -f6)"
You can fetch the contents of your new autoinstall.yaml mid install, and overwrite one that subiquity uses. It just needs to look like this (note that I DO NOT have autoinstall:
here):
version: 1 refresh-installer: update: yes apt: geoip: true preserve_sources_list: false primary: - arches: [amd64, i386] uri: http<://hr.archive.ubuntu.com>/ubuntu - arches: [default] uri: http<://ports.ubuntu.com>/ubuntu-ports identity: hostname: php-client password: xxxencryptedpassxxx realname: php username: php keyboard: {layout: hr, toggle: toggle, variant: ""} locale: en_US network: network: version: 2 ethernets: eth0: dhcp4: yes dhcp6: no ssh: allow-pw: true install-server: true late-commands: - poweroff
Now with all that I can finally identify my server individually (through MAC) and serve them their own custom tailored autoinstall.yaml via some PHP smarties.
If only now I could solve other 20 issues in autoinstall structure… I guess first step is tracking down that /snap/subiquity/...../python3/.../jsonschema/validator.py
file that errors talk about, maybe I’ll be able to proof my files before failing to boot them 20-30 times.
Edit: for those interested I just answered my own question on AskUbuntu here: https://askubuntu.com/a/1292607/1080682