Creating a sandbox server for running the OpenStack Network Neutron services is easy using VirtualBox and Vagrant. VirtualBox gives us the ability to spin up virtual machines and networks without affecting the rest of our working environment and is freely available for Windows, Mac OSX, and Linux. Vagrant allows us to automate this task, meaning we can spend less time creating our test environments and more time using OpenStack.
A Vagrant is installable using Ubuntu’s package management. This test environment can then be used for the rest of this section.
It is assumed that the computer you will be using to run your test environment, has enough processing power that has hardware virtualization support (for example, Intel VT-X and AMD-V support) with at least 8 GB RAM. Our nested virtual machines will require virtual RAM, so more physical RAM will help our virtual machines run much better.
To begin with, ensure that VirtualBox and Vagrant are installed and networking set up as described in Creating a Sandbox Environment With Virtual And Vagrant recipe of Keystone OpenStack Identity Service:
To create our sandbox server for running OpenStack Network within VirtualBox we will use Vagrant to define another virtual machine that allows us to run Open vSwitch and supporting Neutron services. This virtual machine, which we will refer to as the OpenStack Network node, will be configured with at least 1 GB RAM, 1 CPU, and 20 GB of hard drive space and have four network interfaces.
The first will be a NAT interface that allows our virtual machine to connect to the network outside of VirtualBox to download packages. The second interface will be the Management interface of our OpenStack Network host, the third interface will be for our Data network that Neutron uses for transit of data for the software-defined networking, and the fourth interface will be used for routing outside of our virtual environment.
[ Related Page: OpenStack Dashboard Installing ]
Carry out the following steps to create the virtual machine with Vagrant that will be used to run Open vSwitch and Neutron services:
# compute VM config.vm.define ;network do |network_config| Every Vagrant virtual environment requires a box to build off of. network_config.vm.box ="precise64" network_config.vm.host_name="network" network_config.vm.box_url="http://files.vagrantup.com/precise64.box" network_config.vm.network :hostonly, "172.16.0.202", :netmask => "255.255.0.0" network_config.vm.network :hostonly, "10.10.0.202", :netmask => "255.255.0.0" network_config.vm.network :hostonly, "192.168.0.202", :netmask => "255.255.0.0" # Customise the VM virtual hardware network_config.vm.customize["modifyvm", :id,"--memory, 1024"] network_config.vm.cutomize["modifyvm", :id, "--cpus", 1] end
[ Related Article: Interview Questions on Openstack ]
vagrant up network
Note: Congratulations! We have successfully created the VirtualBox virtual machine running Ubuntu 12.04, which is able to run OpenStack Network.
[ Related Article: How to Configure Ubuntu Cloud Archive ]
What we have done is created a virtual machine within VirtualBox by defining it in Vagrant. Vagrant then configures this virtual machine, based on the settings given in the Vagrantfile configuration file in the directory, which will store and run our VirtualBox VMs. This file is based on Ruby syntax, but the lines are relatively self-explanatory. We have specified the following:
[ Related Page: Managing Images with OpenStack ]
We then launch this VirtualBox VM using Vagrant using the following simple command:
vagrant up network
There are a number of virtualization products available that are suitable for trying OpenStack, for example, VMware Server, VMware Player, and VMware Fusion are equally suitable.
Ravindra Savaram is a Content Lead at Mindmajix.com. His passion lies in writing articles on the most popular IT platforms including Machine learning, DevOps, Data Science, Artificial Intelligence, RPA, Deep Learning, and so on. You can stay up to date on all these technologies by following him on LinkedIn and Twitter.