Build VyOS with custom packages
This is just a shorter version of this blog entry, but building on equuleus instead of crux.
podman pull vyos/vyos-build:equuleus git clone -b equuleus --single-branch https://github.com/vyos/vyos-build cd vyos-build sudo podman run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:equuleus bash ./configure --architecture amd64 --build-by "me@example.com" --build-type release --version 1.3.2 --custom-package "mosh ripgrep" sudo make iso ls -lah build/vyos-1.3.2-amd64.iso -rw-r--r-- 1 root root 321M Sep 10 02:06 build/vyos-1.3.2-amd64.iso
I'm not sure why the container needs to be run as privileged, but I have been too lazy to test what happens if it's not. :-) The build took approx. 10 minutes on my fairly old Skylake CPU.
It might be worth noting that the version number specified in the configuration above is nothing magical – it's just telling the build script what it should be called. I built in the latest commit which today just happened to be the right commit (7ce865118886358efde71a5d3782d21063b01a22) for 1.3.2. If I'd been more picky I'd checked out the right tag for this branch, which can be found here: https://github.com/vyos/vyos-build/tags
Install it, I first copied (scp) my iso to /tmp/vyos-1.3.2-amd64.iso
:
$ add system image /tmp/vyos-1.3.2-amd64.iso Checking SHA256 checksums of files on the ISO image... OK. Done! What would you like to name this image? [1.3.2]: OK. This image will be named: 1.3.2 Installing "1.3.2" image. Copying new release files... Would you like to save the current configuration directory and config file? (Yes/No) [Yes]: Copying current configuration... Would you like to save the SSH host keys from your current configuration? (Yes/No) [Yes]: Copying SSH keys... Running post-install script... Setting up grub configuration... Done
A reboot later:
$ show version Version: VyOS 1.3.2 Release train: equuleus Built by: me@example.com Built on: Fri 09 Sep 2022 23:54 UTC Build UUID: 9703c2e7-8ea5-4586-a0a9-674a0c5a6473 Build commit ID: 7ce86511888635 Architecture: x86_64 Boot via: installed image System type: bare metal Hardware vendor: FUJITSU Hardware model: FUTRO S920 Hardware S/N: Hardware UUID: Copyright: VyOS maintainers and contributors