Skip to content

Instantly share code, notes, and snippets.

@tranphuquy19
Last active January 16, 2025 17:15
Show Gist options
  • Save tranphuquy19/746f1d4c190aa509dd3874fb52dec301 to your computer and use it in GitHub Desktop.
Save tranphuquy19/746f1d4c190aa509dd3874fb52dec301 to your computer and use it in GitHub Desktop.
Libvirt Vagrantfile
sudo apt-get update
sudo apt-get install -y build-essential ruby-dev libvirt-dev zlib1g-dev libxslt-dev libxml2-dev # build vagrant-libvirt plugin
sudo apt-get install -y libvirt-daemon libvirt-clients virt-manager libvirt-daemon-driver-lxc lxc
sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER
newgrp libvirt
newgrp kvm
sudo systemctl enable --now libvirtd
sudo systemctl start libvirtd
# -*- mode: ruby -*-
# vi: set ft=ruby :
ENV['VAGRANT_DEFAULT_PROVIDER'] = 'libvirt'
Vagrant.configure("2") do |config|
config.vm.box = "generic/debian12"
config.vm.box_version = "4.3.12"
config.vm.synced_folder ".", "/vagrant",
type: "rsync",
rsync__exclude: [".git/", ".vagrant/"]
config.vm.network :forwarded_port, guest: 22, host: 2222
config.vm.network "private_network",
ip: "192.168.100.12",
libvirt__network_name: "vagrant-static",
libvirt__dhcp_enabled: false,
libvirt__forward_mode: "none"
config.vm.provider :libvirt do |libvirt|
libvirt.uri = 'qemu:///system'
libvirt.memory = 16384
libvirt.cpus = 4
libvirt.cpu_mode = 'host-passthrough'
libvirt.memorybacking :access, :mode => "shared"
libvirt.memorybacking :allocation, :mode => "ondemand"
end
config.vm.provision "shell", inline: <<-SHELL
export DEBIAN_FRONTEND=noninteractive
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do
sudo apt-get remove -y $pkg
done
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker vagrant
sudo systemctl enable docker
sudo systemctl start docker
SHELL
end
# -*- mode: ruby -*-
# vi: set ft=ruby :
ENV['VAGRANT_DEFAULT_PROVIDER'] = 'libvirt'
Vagrant.configure("2") do |config|
config.vm.box = "generic/debian12"
config.vm.box_version = "4.3.12"
config.vm.synced_folder ".", "/vagrant", disabled: true
config.vm.network :forwarded_port, guest: 22, host: 2222
config.vm.network "private_network",
ip: "192.168.100.10",
libvirt__network_name: "vagrant-static",
libvirt__dhcp_enabled: false,
libvirt__forward_mode: "none"
config.vm.provider :libvirt do |libvirt|
libvirt.uri = 'qemu:///system'
libvirt.memory = 1024
libvirt.cpus = 1
end
config.vm.provision "shell", inline: <<-SHELL
export DEBIAN_FRONTEND=noninteractive
sudo apt-get update && sudo apt-get install -y curl
SHELL
end
# -*- mode: ruby -*-
# vi: set ft=ruby :
ENV['VAGRANT_DEFAULT_PROVIDER'] = 'libvirt'
Vagrant.configure("2") do |config|
config.vm.box = "generic/debian12"
config.vm.box_version = "4.3.12"
config.vm.synced_folder ".", "/vagrant",
type: "rsync",
rsync__exclude: [".git/", ".vagrant/"]
config.vm.network :forwarded_port, guest: 22, host: 2222
config.vm.network "private_network",
ip: "192.168.100.11",
libvirt__network_name: "vagrant-static",
libvirt__dhcp_enabled: false,
libvirt__forward_mode: "none"
config.vm.provider :libvirt do |libvirt|
libvirt.uri = 'qemu:///system'
libvirt.memory = 8192
libvirt.cpus = 4
libvirt.cpu_mode = 'host-passthrough'
end
config.vm.provision "shell", inline: <<-SHELL
export DEBIAN_FRONTEND=noninteractive
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do
sudo apt-get remove -y $pkg
done
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker vagrant
sudo systemctl enable docker
sudo systemctl start docker
SHELL
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment