From dd98ae7aa20dfa4d601c1c584f28ace9497bae46 Mon Sep 17 00:00:00 2001 From: Dave Wallace Date: Wed, 3 Feb 2016 02:09:58 -0500 Subject: Initial Honeycomb vagrant support. The following environment variables are used to customize the behavior of the vagrant VM: HONEYCOMB_VAGRANT_DISTRO - Set to "centos7" to run CentOS (currently inop). Unset or any other value runs ubuntu 14.04. HONEYCOMB_M2_REPOSITORY - Set to the pathname of a directory to contain the M2 repository outside of the VM. The specified directory will be mounted at /m2-repository and /home/vagrant/.m2/settings.xml will be modified to use /m2-repository instead of the default directory (/home/vagrant/.m2/repository). VPP_VAGRANT_NICS - Set to the number of addtional NICS desired for VPP to use. VPP_REPO - Set to the pathname of a VPP repository. The specified pathname will be mounted on /vpp and a working repo will be cloned into /home/vagrant/git/vpp. VPP will then be built, installed and started after the VM is created. Change-Id: I6b673c3c378c6b6b7c342d91dc33118ecc97bd05 Signed-off-by: Dave Wallace --- vagrant/Vagrantfile | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 vagrant/Vagrantfile (limited to 'vagrant/Vagrantfile') diff --git a/vagrant/Vagrantfile b/vagrant/Vagrantfile new file mode 100644 index 000000000..5a3203933 --- /dev/null +++ b/vagrant/Vagrantfile @@ -0,0 +1,64 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +Vagrant.configure(2) do |config| + + config.ssh.forward_x11 = true + + # Pick the right distro and bootstrap, default is ubuntu1404 + distro = ENV['HONEYCOMB_VAGRANT_DISTRO'] + if distro == 'centos7' + config.vm.box = "puppetlabs/centos-7.0-64-nocm" + config.vm.provision 'shell', path: 'bootstrap.centos7.sh' + else + config.vm.box = "puppetlabs/ubuntu-14.04-64-nocm" + config.vm.provision 'shell', path: 'bootstrap.ubuntu1404.sh' + end + + # vagrant-cachier caches apt/yum etc to speed subsequent + # vagrant up + # to enable, run + # vagrant plugin install vagrant-cachier + # + if Vagrant.has_plugin?("vagrant-cachier") + config.cache.scope = :box + end + + # Define some physical ports for your VMs to be used by DPDK + nics = 0 + if ENV.key?('VPP_VAGRANT_NICS') + nics = ENV['VPP_VAGRANT_NICS'].to_i(10) + end + for i in 1..nics + config.vm.network "private_network", type: "dhcp" + end + + # use http proxy if avaiable + if ENV['http_proxy'] && Vagrant.has_plugin?("vagrant-proxyconf") + config.proxy.http = "$http_proxy" + config.proxy.https = "$https_proxy" + config.proxy.no_proxy = "localhost,127.0.0.1" + end + + # Mount VPP repository if specified + if ENV.key?('VPP_REPO') + config.vm.synced_folder ENV['VPP_REPO'], "/vpp", disabled: false + end + + # Mount Maven repository if specified + if ENV.key?('HONEYCOMB_M2_REPO') + config.vm.synced_folder ENV['HONEYCOMB_M2_REPO'], "/m2-repository", disabled: false + end + + config.vm.synced_folder "../", "/honeycomb", disabled: false + config.vm.provider "virtualbox" do |vb| + vb.memory = "4096" + end + config.vm.provider "vmware_fusion" do |fusion,override| + fusion.vmx["memsize"] = "4096" + end + config.vm.provider "vmware_workstation" do |vws,override| + vws.vmx["memsize"] = "8192" + vws.vmx["numvcpus"] = "4" + end +end -- cgit 1.2.3-korg