How to use vagrant-kvm
sudo su
echo "deb http://download.virtualbox.org/virtualbox/debian trusty contrib" >> /etc/apt/sources.list
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | apt-key add -
apt-get update && apt-get install -y virtualbox-4.3 dkms
mkdir ~/vagrant/vb
cd ~/vagrant/vb
vim Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.define :control do |controller|
controller.vm.hostname = "controller"
controller.vm.provider "virtualbox" do |vb|
vb.customize ["modifyvm", :id, "--memory", "2048"]
end
controller.vm.network :private_network, ip: '192.0.2.24', virtualbox__intnet: "intnet"
controller.vm.network :private_network, ip: '192.168.99.24', virtualbox__intnet: "extnet"
end
config.vm.define :network do |network|
network.vm.hostname = "network"
network.vm.provider "virtualbox" do |vb|
vb.customize ["modifyvm", :id,
"--memory", "1024",
"--nicpromisc1", "allow-all",
"--nicpromisc2", "allow-all",
"--nicpromisc3", "allow-all",
]
end
network.vm.network :private_network, ip: '192.0.2.25', virtualbox__intnet: "intnet"
network.vm.network :private_network, ip: '192.168.99.25', virtualbox__intnet: "extnet"
network.vm.network :public_network
end
end
sudo apt-get install libxslt-dev libxml2-dev libvirt-dev qemu-utils
vagrant plugin install vagrant-libvirt
vagrant plugin install vagrant-mutate
vagrant mutate trusty64 libvirt
Vagrant.configure('2') do |config|
config.vm.box = "trusty64"
config.vm.define :control do |control|
control.vm.hostname = "controller"
control.vm.network :public_network
control.vm.network :private_network, ip: "192.168.123.10"
control.vm.provider :kvm do |kvm, override|
kvm.memory_size = '2048m'
end
control.vm.provider :libvirt do |libvirt, override|
libvirt.memory = 2048
libvirt.nested = true
end
end
config.vm.define :network do |network|
network.vm.hostname = "network"
network.vm.network :public_network
network.vm.network :private_network, ip: "192.168.123.12"
network.vm.provider :kvm do |kvm, override|
kvm.memory_size = '2048m'
end
network.vm.provider :libvirt do |libvirt, override|
libvirt.memory = 2048
libvirt.nested = true
end
end
end
vagrant up --provider=libvirt
vagrant ssh control
vagrant ssh network
sudo su
apt-get update && apt-get install -y libvirt-dev ruby-all-dev apparmor-utils
curl -O -L https://dl.bintray.com/mitchellh/vagrant/vagrant_1.6.5_x86_64.deb
dpkg -i vagrant_1.6.5_x86_64.deb
aa-complain /usr/lib/libvirt/virt-aa-helper # workaround
exit
vagrant plugin install vagrant-kvm
sudo vim /etc/modprobe.d/kvm.conf
cat /etc/modprobe.d/kvm.conf
options kvm-intel nested=1
options kvm-amd nested=1
vagrant box add trusty64 https://vagrant-kvm-boxes-si.s3.amazonaws.com/trusty64-kvm-20140418.box
vagrant box list
mkdir -p ~/vagrant/test
cd ~/vagrant/test
vagrant init trusty64
Vagrant.configure('2') do |config|
config.vm.box = "trusty64"
config.vm.network :public_network, ip: "192.168.11.197"
config.vm.network :private_network, ip: "192.168.123.10"
config.vm.provider :kvm do |kvm, override|
kvm.memory_size = '2048m'
end
end
vagrant up --provider=kvm
vagrant ssh
Vagrant.configure('2') do |config|
config.vm.box = "trusty64"
config.vm.define :control do |control|
control.vm.hostname = "controller"
control.vm.network :public_network
control.vm.network :private_network, ip: "192.168.123.10"
control.vm.provider :kvm do |kvm, override|
kvm.memory_size = '2048m'
end
end
config.vm.define :network do |network|
network.vm.hostname = "network"
network.vm.network :public_network
network.vm.network :private_network, ip: "192.168.123.12"
network.vm.provider :kvm do |kvm, override|
kvm.memory_size = '2048m'
end
end
end
vagrant ssh control
vagrant ssh network