Vagrant + vQFX + Ansible = EVPN-VXLAN Fabric

Vagrant + vQFX + Ansible = EVPN-VXLAN Fabric

Did you know that Juniper vQFX images are available in Vagrant Cloud? There is vQFX RE image and vQFX PFE one. You can use only RE image to build simple topologies, or pair every RE with PFE to use more complex protocols. There is also a bunch of examples in Juniper’s github repository.

What is Vagrant? Let me quote official website: “Vagrant is a tool for building and managing virtual machine environments in a single workflow. Vagrant gives you a disposable environment and consistent workflow for developing and testing infrastructure management scripts.” I hope you already knew that. And I also hope there is no need to present Ansible.

I played with this stuff a little bit and created a couple of new examples using full vQFX option (e.g. RE+PFE for every box) – IP fabric and EVPN-VXLAN fabric.

This is really easy way if you want to get yourself familiar with configuration of IP fabric and EVPN-VXLAN on QFX (and some Ansible as well), but don’t want to spend time figuring out how to set everything up in GNS3 or EVE-NG.

Just a few simple steps:

  • Get yourself a Linux box with 32G of RAM (maybe 16-20G would be enough, but not sure about that). If you use virtual machine, make sure that you enable nested virtualization
  • Install Git, Vagrant, Virtualbox, Ansible (just simple “apt-get install …”)
  • Install junos-eznc (aka PyEZ) and lxml Python modules (just simple “pip install … “)
  • Clone git project: “git clone https://github.com/grigorenkoae/vqfx10k-vagrant.git”
  • cd to directory of example topology you interested in and run “vagrant up”

Vagrant and Ansible will do the rest “automagically” – download all required images, bring up all the boxes, configure necessary user accounts and SSH keys, provision configs. All you need to do is to wait the process to complete and “vagrant ssh …” to boxes you interested in to explore.

Have fun!

3 thoughts on “Vagrant + vQFX + Ansible = EVPN-VXLAN Fabric

Leave a Reply

Your email address will not be published. Required fields are marked *