While normally data is passed to linuxrc (including an AutoYaST profile), modern auto-install tools like Ignition from CoreOS support a very interesting method: the QEMU Firmware Config device.

This allows to read from inside the VM a blob by reading /sys/firmware/qemu_fw_cfg/by_name/opt/keyname. The driver is included in recent Linux kernels.

In order to populate the key, one pass the data via the qemu command line: -fw_cfg name=opt/keyname,file=somedata.txt

This would allow to pass an AutoYaST profile directly if running qemu where the profile is located, and for libvirt or the terraform libvirt provider, the volume where the profile is uploaded before passed does not need to be attached to the machine.

The idea is to implement this in Linuxrc by:

  • url_read_file_anywhere()
  • Also check user-defined schemes, like /scripts/url/hmc
  • Choose a good URL scheme like the ones already available for AutoYaST](https://doc.opensuse.org/projects/autoyast/#Commandline.ay), eg: qemu://key
  • Allow to specify autoyast=qemu://key, or just look by default in a key like opt/suse/autoinst/raw
  • Take care of loading the module and including it in linuxrc.

This project is related to "Implement kernel cmdline and/or autoyast/kickstart support in terraform-provider-libvirt ".

Outcome

Looking for hackers with the skills:

autoyast yast linuxrc terraform

This project is part of:

Hack Week 16

Activity

  • over 2 years ago: dmacvicar joined Implement QEMU Firmware Config device support in Linuxrc/AutoYaST
  • over 2 years ago: mbrugger liked Implement QEMU Firmware Config device support in Linuxrc/AutoYaST
  • over 2 years ago: michalnowak liked Implement QEMU Firmware Config device support in Linuxrc/AutoYaST
  • over 2 years ago: hsehic liked Implement QEMU Firmware Config device support in Linuxrc/AutoYaST
  • over 2 years ago: hsehic started Implement QEMU Firmware Config device support in Linuxrc/AutoYaST
  • over 2 years ago: dmacvicar added keyword "autoyast" to Implement QEMU Firmware Config device support in Linuxrc/AutoYaST
  • over 2 years ago: dmacvicar added keyword "yast" to Implement QEMU Firmware Config device support in Linuxrc/AutoYaST
  • over 2 years ago: dmacvicar added keyword "linuxrc" to Implement QEMU Firmware Config device support in Linuxrc/AutoYaST
  • over 2 years ago: dmacvicar added keyword "terraform" to Implement QEMU Firmware Config device support in Linuxrc/AutoYaST
  • over 2 years ago: dmacvicar originated Implement QEMU Firmware Config device support in Linuxrc/AutoYaST

  • Comments

    • snwint
      over 2 years ago by snwint | Reply

      The qemu driver is actually already in TW. Here's a proof-of-concept implementation:

      https://github.com/openSUSE/installation-images/pull/211

      Notes: - it's actually not trivial to make it nicer (without the by_name and raw) - it would require to go to a direct linuxrc implementation - those user defined url schemes already work in sle12(-sp3, at least) - to create a test iso, use mksusecd

    Similar Projects

    SES 6 Installer script by davidbyte

    take my existing buildit.sh script (https://git...


    Learn Crystal by porting part of YaST to that language by ancorgs

    For a very long time, I have been planning to p...


    Analyser for YaST logs by jreidinger

    Well, we often stuck in YaST team with knowledg...


    Build admin-tools in a stand-alone environment without obs dependencies by dmulder

    The [admin-tools appimage](https://appimage.git...


    openSUSE on ZoL from OpenZFS project by jkohoutek

    Idea is to have SUSE system with OpenZFS as roo...


    Zero-ish downtime deploy on da cheap! by josegomezr

    Zero-ish downtime deploy on da cheap!

    This...


    Modernize Mash deployment by seanmarlow

    Mash is a Python based CI/CD pipeline for aut...


    Fix terracumber, add some python unit tests, try to extend it and publish it by juliogonzalezgil

    Last year I developed [Terracumber](https://hac...