Where is my OVA dude?
Posted 17 Feb, 2019 by Yuriy Andamasov
As we mentioned in emails, OVA bit delayed, as always, there are reasons for that.
First one is VMWare Ready validation that we hope will finish soon.
The second one is a significant rework of OVA distribution that includes configuration via OVF environment (see T722)
This changes facilitating much more flexibility for automated deployments with ovftool to vSphere or vCloud and also use it vRealize Automation Blueprints.
Meanwhile, remember that you always can create your OVA/OVF if you have VyOS ISO.
It can be prepared in several ways but if you plan to use it on vSphere, easiest will be to use vCenter. The process is straightforward.
Create a Debian VM:
10 GB disk in thin mode (on PVSCSI controller)
VMXNET3 NICs (if you typically need 4+ networks, do 4 NICs)*
Install VyOS from ISO as usual
Now as you have VyOS instance with default config you can prepare it to be used as a template. At a minimum - you want to do two things
Remove hw-id from interfaces (delete interfaces ethernet <ethX> hw-id ) so each time you clone VM after, it will won't come up with unexpected interface numbering
Remove serial device ( delete system console device ttyS0 ) unless you configured it on vSphere
I typically do more configurations but it mostly depends on your needs, so you can do pretty much anything that you think can save time
So here are some samples:
Configure the first interface for DHCP. Handy if your WAN/LAN addresses served from DHCP, you instantly have connectivity after cloning
Enable SSH (set service ssh) and remove host keys (sudo rm -rf /etc/ssh/*host*)
Remove logs and shell history (optionally)
Now you ready for export. Here you have plenty of options
Save VM as a template (either to datastore or content library) and deploy it from there
Leave it as VM and just clone as needed
Export to OVF
To produce OVA file (and optionally sign it with certificate) you will need OVFTool.
A process is straightforward and can be done on any OS (you need to have ovftool in $PATH)
Run next command to convert ovf to ova (must happen in a folder where you exported ovf)
ovftool VyOS-Router.ovf VyOS-Router.ova
We usually signing OVAs with code signing cert, is a good way to confirm the integrity of the image as well as its authenticity.
Needless to say that you can do the same for any OS, not just VyOS.
OVFTool is a great app that not only allows convert formats but also you can deploy ovf/ova to your vSphere and vCloud environments, it’s handy if you do it from ansible or any other automation engine.
And configuration via OVF Environment is handy when it comes to MSP environments where you need to provision VMs daily or also DEV/QA environments where it happens often as well.
Hope this be useful for someone, feel free questions in comments