First boot config?



Is there a way to provide the VMware OVA with a first-boot configuration to use? For comparison, some other virtual router options allow you to attach an ISO with a file named a particular way, which the router image looks for the first time it boots up (a “day0” config file). Is there such a thing in VyOS land? If not, any suggestions on how to approximate it?


Good evening smart people. Hopefully this is kosher, but I’m just bumping this to get a few more eyes on it. Surely I must be missing some feature for automating the deployment of VyOS on a hypervisor using a generated config file. Right?


Check this out:


That is helpful, as it provides a way to automate at least the configuration of a management interface I could potentially use to copy over my full configuration file. However, it seems rather cumbersome to need to generate, upload, and deploy a new OVA for each appliance I might need to deploy (because they would have different management IPs).

I’m starting to think I’ll need to create a custom image which hooks into a custom boot script to provide my config in a more streamlined way (e.g., custom boot script looks for an “inserted” CD which contains a file named “boot.config” and copies it and then reboots). In that way, I only need to maintain 1 VM template per VyOS release, and just generate/upload/attach an ISO containing my generated config for the VM to use the first time it boots.


Agreed, it’ll at least ease the pain some. You could also layer this in as well:

So you could hit it with some Python magic once you have a base configuration file in place that at least grants you access to SSH on an interface.

Indeed, if you configured an OVF with a defualt management IP, as long as you were on the same segement as it, you could always adjust the IP address of the machine you are using to configure the device to be on the subnet as the management interface of your VyOS instance.

Depending on what platform you’ll be deploying these on whether it be in the cloud or on prem, there’s always ansible.

Probably, would be easier to just set an interface to DHCP, give it a host name, enable LLDP and use python to locate it and pass your configuration options there. Sorta of like a little Python-VyOS-Commander server.

One additonal option, I can’t vouch for this but it looks accurate (For the time it was written/version)

-Scripted Deployment