Cisco VIRL - Bare Metal Install Tips and Lessons Learned

In my first post on VIRL -  ”Cisco VIRL Status? Digital Paper Weight”, I shared my frustration with not being able to get my system to activate with Cisco. Come to find out, I’m a dim wit. That is, in the ‘Salt ID and domain’ section, I mistakenly left the .pem suffix in the name. Ironically, I blurred out that section, in an attempt to retain some privacy. However, if I hadn’t somebody may have rightly pointed out my error.

Given that, The VIRL install isn’t a point and click and all is good in router land. There are some details here and there, that should be ironed out. In this post, I’ll list some of the items that stood out, as I installed, found a quirk, and re-installed.

I did a bare-metal install. That is, I installed it on a physical computer, rather than a VM. The first quirk that I noticed is that udev immediately renamed eth0 to p3p1. Not a huge deal, however, the install requires that you have Internet access. By default, eth0 is set to DHCP an address, for Internet connectivity. After booting into the LiveCD environment, I needed to get network connectivity. To do this, I needed to get p3p1 and address. You can verify that eth0 has been renamed and what it’s been renamed to by executing dmesg | grep eth0 from a terminal prompt.

Here’s my steps:

Note: I make some assumptions:

If you need to assign a static IP Address, you’ll need to manually edit the /etc/network/interfaces file.

auto p3p1
iface p3p1 inet static
     address 172.16.1.51
     netmask 255.255.255.192
     gateway 172.16.1.1

Remember to substitute the 172.16.x.x addresses and netmask for your specific network. Also, leave the dns-nameservers section in, but change the name servers to suite your network.

From here, the install should be ready to go. After the install is complete and the computer has been rebooted. Here are some of the notes that I made.

After that, It’s a mater of editing the /etc/virl.ini file. Take note that all the variables are lower case with under scores (“_”) between words in a variable. There are at least two variables that mistakenly have upper case letters, thus won’t be recognized by the automation and skipped - forcing you to either re-install or hack your way through the remainder of the install. Here are the variables that I noticed:

I also noticed that the ‘dummy’ interfaces don’t work above the number 4 - I attempted to create a dummy interface scheme that matched my ip prefixes. That didn’t work out to well. I’m also noticed that the internalnet section changes itself to 172.16.10.0/24 - according to /etc/network/interfaces and MySQL, but it’s completely different in my /etc/virl.ini and I’m not certain where it’s getting that prefix from, yet.

Once you get VIRL up and working, copy your /etc/virl.ini file off to another computer. That way, if you have to re-install, you can make quick work of the re-install.

I’m sure that I’ll find more things. As I do, I’ll take notes of them and post updates.