Page MenuHomeVyOS Platform

First boot configuration support
Closed, WontfixPublicFEATURE REQUEST

Description

I've created an enhancement for VyOS which allows you to attach an ISO containing an initial configuration to a VyOS VM, and upon first boot it will detect the presence of the config and use it.

Implementation: https://github.com/jpsutton/vyos-firstboot

The idea here is that pretty much all hypervisors support attaching an ISO to a virtual machine, so using an ISO as a way to provide configuration data to a new VyOS VM is ideal. Here's the overview of it's operation:

  1. Upon first boot, the user is expected to attach an ISO file containing a valid VyOS configuration file named "vyosinit.cfg" in the root of the ISO.
  2. A start-up script detects the presence of an ISO9660 volume, and looks inside the volume (without needing to mount it) for a file with that name.
  3. If the filename is detected, it is extracted from the ISO and placed in /tmp.
  4. The normal process for loading a configuration file and saving it is used.
  5. A flag file is placed in /config in order to prevent subsequent boots from re-using the configuration file.

I've already made modifications to the vyos-build repo to support this change. I will submit a pull request for this change, as suggested in Slack.

Details

Difficulty level
Unknown (require assessment)
Version
-
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Unspecified (please specify)

Event Timeline

This seems similar to the "configuration drive" option for OpenStack, which is already handled by cloud-init. Might be handy to implement as a cloud-init local data source and just include CI on all builds since thats becoming an industry standard even on bare metal.

dmbaturin set Is it a breaking change? to Unspecified (possibly destroys the router).
dmbaturin set Issue type to Unspecified (please specify).
zsdc claimed this task.
zsdc added a subscriber: zsdc.

This is closed now because the required functionality perfectly works with Cloud-init + NoCloud/ConfigDrive.