cloudymax / pxeless

An automated system install and image customization tool for when PXE is not an option, or is not an option yet.
MIT License
114 stars 16 forks source link

Wrong module in user-data.advanced file #21

Closed Mwiku closed 2 years ago

Mwiku commented 2 years ago

The user-data.advanced file contains the runcmd module, however, this does not work on autoinstall or at least with the current version. Did u test it?

cloudymax commented 2 years ago

Hoi 👋, thanks for the question!

As you correctly pointed out runcmd isn't a part of autoinstall - it's actually a part of cloud-init. The advanced sample in question combines both autoinstall and cloud-init into a single file as noted here:

https://github.com/cloudymax/pxeless/blob/e961eb11fd0ea81cff2849729581d817144142dd/user-data.advanced#L20

Its understandably confusing because many of the auto-install modules share the same name as cloud-init modules. You can find more information about cloud-init modules here. I also maintain a set of cloud-init (not auto-install) profiles for use with virtual-machines here for reference

As for testing - I just rebuilt a VM using this profile and verified that it builds properly, though found I needed to change the username specified for setting the brew path (that has been fixed now)

Screenshot 2022-11-18 at 07 05 53

In general, testing for pxeless is done via QEMU using this project to generate the specific commands, in this case:

sudo qemu-system-x86_64 \
-machine accel=kvm,type=q35 \
-cpu host,kvm=off,hv_vendor_id=null \
-smp 8,sockets=1,cores=4,threads=2,maxcpus=8 \
-m 8G \
-cdrom /home/max/repos/pxeless/ubuntu-autoinstall.iso \
-object iothread,id=io1 \
-device virtio-blk-pci,drive=disk0,iothread=io1 \
-drive if=none,id=disk0,cache=none,format=qcow2,aio=threads,file=hdd.img \
-netdev user,id=network0,hostfwd=tcp::1234-:22 \
-device virtio-net-pci,netdev=network0 \
-serial stdio -vga virtio -parallel none \
-bios /usr/share/ovmf/OVMF.fd \
-usbdevice tablet \
-vnc 192.168.50.100:0

The virtual machine uses the pxeless ISO file as a boot drive and the GRUB/boot prompts are navigated via a VNC connection with the VM.

Hope this helps!

Mwiku commented 2 years ago

Thanks for the swift reply and for maintaining the project.

cloudymax commented 2 years ago

Thanks for the swift reply and for maintaining the project.

No problem! 😊