[VyOS] is an open source network operating system that is based on Debian GNU/Linux and that joins multiple applications such as Quagga, ISC DHCPD, OpenVPN, StrongS/WAN and others under a single management interface. It can be installed on physical hardware or on virtual machines and it is a community fork of [Vyatta].
Follow this procedure as a root user to create a VyOS based LXC root filesystem for VNX. The procedure has been tested with VyOS 1.1.7 over a Ubuntu 16.04 system.
- Get VyOS installation CD and mount it to make its content accesible:
wget http://packages.vyos.net/iso/release/1.1.7/vyos-1.1.7-amd64.iso mount -o loop vyos-1.1.7-amd64.iso /mnt/
lxc-create -n vyos -t debian -- -r wheezy
cd /var/lib/lxc/vyos rm -rf /var/lib/lxc/vyos/rootfs/ unsquashfs /mnt/live/filesystem.squashfs mv squashfs-root/ rootfs umount /mnt
# Change the number of ttys to 6 sed -i -e "s/lxc.tty = 4/lxc.tty = 6/" config # Eliminate the "nr_inodes" option in vyatta-router script (not supported inside the container) sed -i -e 's/,nr_inodes=0//' rootfs/etc/init.d/vyatta-router # Create the /dev/fuse device manually in /etc/rc.local sed -i -e "/By default this script does nothing/a mknod -m 666 /dev/fuse c 10 229\nchown root.fuse /dev/fuse\nchmod 660 /dev/fuse" rootfs/etc/rc.local
lxc-start -n vyos sleep 5 lxc-attach -n vyos -- poweroff
echo "export TERM=xterm" >> rootfs/home/vyos/.bashrc
After this steps, you will have a working VyOS LXC image ready to be used. You can start it and access the console with:
lxc-start -n vyos lxc-console -n vyos
Note: the foreground option "-F" of "lxc-start" that allows starting the container and directly showing the console does not work (I do not now why; probably something related with the console/ttyS0 ports).
Finally, to convert the image into a VNX rootfs:
- Move the image to VNX images directory:
cd /usr/share/vnx/filesystems/ mv /var/lib/lxc/vyos vnx_rootfs_lxc_vyos64-1.1.7-v025
lxc.rootfs = /usr/share/vnx/filesystems/vnx_rootfs_lxc_vyos64-1.1.7-v025/rootfs
configure set system login user vnx full-name "VNX project" set system login user vnx authentication plaintext-password xxxx set system login user vnx level admin commit save