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 subscribed.

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