diff options
author | Dave Wallace <dwallacelf@gmail.com> | 2016-02-03 02:09:58 -0500 |
---|---|---|
committer | Dave Wallace <dwallacelf@gmail.com> | 2016-02-03 02:10:25 -0500 |
commit | dd98ae7aa20dfa4d601c1c584f28ace9497bae46 (patch) | |
tree | 4aaa31545681afb394d5cb2b3b568b521e37ab36 /vagrant/Vagrantfile | |
parent | 2587eee429cb0ef07125f0f6d74d1f669878d553 (diff) |
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 <dwallacelf@gmail.com>
Diffstat (limited to 'vagrant/Vagrantfile')
-rw-r--r-- | vagrant/Vagrantfile | 64 |
1 files changed, 64 insertions, 0 deletions
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 |