7b75d211ae
I upgraded Fedora23 which installed kernel 4.6.4 which in turn required VirtualBox 5.1.2 which in turn required Vagrant 1.8.5. Workaround for a change in Vagrant 1.8.5 that breaks Centos. The newer version of Vagrant doesn't chmod the ssh directory before trying to copy new public key during installs. This will be fixed upstream in Vagrant 1.8.6. Bug doesn't affect Ubuntu because it uses a different umask whereas Centos uses 0002. Change-Id: I8108d4cc208fc47fa69f8a5cf27b2bba7e34293e Signed-off-by: Thomas F Herbert <therbert@redhat.com>
86 lines
3.0 KiB
Ruby
86 lines
3.0 KiB
Ruby
# -*- mode: ruby -*-
|
|
# vi: set ft=ruby :
|
|
|
|
Vagrant.configure(2) do |config|
|
|
|
|
# Pick the right distro and bootstrap, default is ubuntu1404
|
|
distro = ( ENV['VPP_VAGRANT_DISTRO'] || "ubuntu1404")
|
|
if distro == 'centos7'
|
|
config.vm.box = "puppetlabs/centos-7.2-64-nocm"
|
|
config.ssh.insert_key = false
|
|
else
|
|
config.vm.box = "puppetlabs/ubuntu-14.04-64-nocm"
|
|
end
|
|
config.vm.box_check_update = false
|
|
|
|
config.vm.provision :shell, :path => File.join(File.dirname(__FILE__),"update.sh")
|
|
config.vm.provision :shell, :path => File.join(File.dirname(__FILE__),"build.sh"), :args => "/vpp vagrant"
|
|
config.vm.provision :shell, :path => File.join(File.dirname(__FILE__),"install.sh"), :args => "/vpp"
|
|
config.vm.provision :shell, :path => File.join(File.dirname(__FILE__),"clearinterfaces.sh")
|
|
config.vm.provision :shell, :path => File.join(File.dirname(__FILE__),"run.sh")
|
|
|
|
# Add .gnupg dir in so folks can sign patches
|
|
# Note, as gnupg puts socket files in that dir, we have
|
|
# to be cautious and make sure we are dealing with a plain file
|
|
homedir = File.expand_path("~/")
|
|
Dir["#{homedir}/.gnupg/**/*"].each do |fname|
|
|
if File.file?(fname)
|
|
destname = fname.sub(Regexp.escape("#{homedir}/"),'')
|
|
config.vm.provision "file", source: fname, destination: destname
|
|
end
|
|
end
|
|
|
|
# Copy in the .gitconfig if it exists
|
|
if File.file?(File.expand_path("~/.gitconfig"))
|
|
config.vm.provision "file", source: "~/.gitconfig", destination: ".gitconfig"
|
|
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 = (ENV['VPP_VAGRANT_NICS'] || "2").to_i(10)
|
|
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 = ENV['http_proxy']
|
|
config.proxy.https = ENV['https_proxy']
|
|
config.proxy.no_proxy = "localhost,127.0.0.1"
|
|
end
|
|
|
|
vmcpu=(ENV['VPP_VAGRANT_VMCPU'] || 2)
|
|
vmram=(ENV['VPP_VAGRANT_VMRAM'] || 4096)
|
|
|
|
config.vm.synced_folder "../../", "/vpp", disabled: false
|
|
config.vm.provider "virtualbox" do |vb|
|
|
vb.customize ["modifyvm", :id, "--ioapic", "on"]
|
|
vb.memory = "#{vmram}"
|
|
vb.cpus = "#{vmcpu}"
|
|
|
|
#support for the SSE4.x instruction is required in some versions of VB.
|
|
vb.customize ["setextradata", :id, "VBoxInternal/CPUM/SSE4.1", "1"]
|
|
vb.customize ["setextradata", :id, "VBoxInternal/CPUM/SSE4.2", "1"]
|
|
end
|
|
config.vm.provider "vmware_fusion" do |fusion,override|
|
|
fusion.vmx["memsize"] = "#{vmram}"
|
|
fusion.vmx["numvcpus"] = "#{vmcpu}"
|
|
end
|
|
config.vm.provider "libvirt" do |lv|
|
|
lv.memory = "#{vmram}"
|
|
lv.cpus = "#{vmcpu}"
|
|
end
|
|
config.vm.provider "vmware_workstation" do |vws,override|
|
|
vws.vmx["memsize"] = "#{vmram}"
|
|
vws.vmx["numvcpus"] = "#{vmcpu}"
|
|
end
|
|
end
|