As discussed in Setting up an Ubuntu virtual machine using VirtualBox there are several other alternatives to defining an Ubuntu virtual machine. One of these alternatives is using Vagrant.
Vagrant requires the installation of VirtualBox.
See Vagrant Downloads for the correct file for your platform.
For Ubuntu, the following commands will download a recent copy and install on your computer.
$ wget https://releases.hashicorp.com/vagrant/1.8.1/vagrant_1.8.1_x86_64.deb $ sudo dpkg -i vagrant_1.8.1_x86_64.deb
Launching an Ubuntu image
The following commands will initialize an start an Ubuntu 14.04 vagrant instance.
$ vagrant init ubuntu/trusty64 $ vagrant up --provider virtualbox $ vagrant ssh
You should now be connected to the new virtual machine.
Vagrant creates a port forwarding configuration from your local machine automatically. You can connect via ssh directly with:
ssh vagrant@localhost -p 2222 -i .vagrant/machines/default/virtualbox/private_key
NOTE: Port 2222 may be different if this is already in use. You can verify this via the output of the vagrant up command, for example:
... ==> default: Forwarding ports... default: 22 (guest) => 2222 (host) (adapter 1) ...
In order to access your vagrant instance with a specific IP address and leverage the recommended devstack instructions you need to add the config.vm.network line to the Vagrantfile in the directory used on your host computer. You also need to set the virtual machine memory to at least 2.5GB to get a minimal devstack operational.
Vagrant.configure(2) do |config| config.vm.box = "ubuntu/trusty64" config.vm.network "private_network", type: "dhcp" config.vm.provider "virtualbox" do |v| v.memory = 2560 end end
You will then need to restart the vagrant image in order to have a host-only IP assigned to the virtual machine and applicable memory.
$ vagrant reload $ vagrant ssh $ ifconfig eth1 $ free -m
This has created a suitable virtual machine ready for Downloading and installing devstack.