Hi,

I just discover a new qemu feature : qemu fw_cfg

http://www.contrib.andrew.cmu.edu/~somlo/QEMU_fw_cfg/


It's allow to add a custom firmware, from a host file

like "-fw_cfg name=opt/GuestInfo,file=/etc/pve/qemu-server/100.conf"  , for 
example


Then it's possible to read this file in guest in 

"/sys/firmware/qemu_fw_cfg/by_name/opt/GuestInfo/raw"

This need a new module include in guest kernel 4.6 (CONFIG_FW_CFG_SYSFS), 
but the module is also available out of kernel tree here:
http://www.contrib.andrew.cmu.edu/~somlo/QEMU_fw_cfg/qemu_fw_cfg_kmod.tgz

(really small, it's simply extend standard firmware , so it's work with old 
kernel too)

for windows, seem that they are working on it 
(https://bugzilla.redhat.com/show_bug.cgi?id=1375444)



Advantage vs cloudinit: 

- no need to pass cdrom, no extra pci device.(it's simply a firmware)
- you can use it in initramfs. (format disk, do mount point,...)


disavantage vs cloudinit:

- read only (you can change it after boot, but it's really for vm init)
- no daemon or standard to parse the config, you need to do it yourself.
  But coreos for example, have a projet "ignition", 
  https://coreos.com/ignition/docs/latest/
  which can use it (it's working in initramfs)



I think it should be possible to provide qemu linux distro template like lxc, 
format the disk in initramfs, do the mount point, deploy source for example.
Maybe also provide initramfs to qemu with -initrd, with an integrated custom 
config parser,to format the disk, do the mountpoint, deploy the template,set 
ssh keys, ....

What do you think about it ?


(
I'm currently working on a terraform proxmox provider, to deploy vm, as we are 
looking to deploy Rancher next year (a kubernetes clusters managers),
and I need to be able to create vm from outside proxmox, with ip 
configuration,hostname,...)

_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to