73 lines
2.1 KiB
Ruby
73 lines
2.1 KiB
Ruby
Vagrant.configure("2") do |config|
|
|
# Disable default synced folder
|
|
config.vm.synced_folder ".", "/vagrant", disabled: true
|
|
|
|
# DMZ - Traefik Reverse Proxy
|
|
config.vm.define "dmz" do |dmz|
|
|
dmz.vm.box = "debian/bookworm64"
|
|
dmz.vm.hostname = "dmz"
|
|
dmz.vm.network "private_network", ip: "192.168.56.10"
|
|
dmz.vm.network "forwarded_port", guest: 80, host: 8080
|
|
dmz.vm.network "forwarded_port", guest: 443, host: 8443
|
|
|
|
# Libvirt provider - much better performance than virtualbox
|
|
dmz.vm.provider "libvirt" do |lv|
|
|
lv.memory = 2048
|
|
lv.cpus = 2
|
|
end
|
|
|
|
# Provision dependencies
|
|
dmz.vm.provision "shell", inline: <<-SHELL
|
|
# Update system
|
|
apt-get update
|
|
apt-get install -y sudo python3 ca-certificates curl gnupg
|
|
SHELL
|
|
end
|
|
|
|
# Backend - Container Host
|
|
config.vm.define "backend" do |backend|
|
|
backend.vm.box = "debian/bookworm64"
|
|
backend.vm.hostname = "backend"
|
|
backend.vm.network "private_network", ip: "192.168.56.11"
|
|
|
|
# Libvirt provider - much better performance than virtualbox
|
|
backend.vm.provider "libvirt" do |lv|
|
|
lv.memory = 2048
|
|
lv.cpus = 2
|
|
end
|
|
|
|
# Provision dependencies
|
|
backend.vm.provision "shell", inline: <<-SHELL
|
|
# Update system
|
|
apt-get update
|
|
apt-get install -y sudo python3 ca-certificates curl gnupg
|
|
SHELL
|
|
end
|
|
|
|
# Backend2 - Second smaller Container Host for testing
|
|
config.vm.define "backend2" do |backend2|
|
|
backend2.vm.box = "debian/bookworm64"
|
|
backend2.vm.hostname = "backend2"
|
|
backend2.vm.network "private_network", ip: "192.168.56.12"
|
|
|
|
backend2.vm.provider "libvirt" do |lv|
|
|
lv.memory = 1024
|
|
lv.cpus = 1
|
|
end
|
|
|
|
# Provision dependencies
|
|
backend2.vm.provision "shell", inline: <<-SHELL
|
|
# Update system
|
|
apt-get update
|
|
apt-get install -y sudo python3 ca-certificates curl gnupg
|
|
SHELL
|
|
|
|
# Provision all VMs with Ansible after the last VM is up
|
|
backend2.vm.provision "ansible" do |ansible|
|
|
ansible.limit = "all"
|
|
ansible.playbook = "playbooks/site.yml"
|
|
ansible.inventory_path = "inventories/vagrant"
|
|
ansible.verbose = "v"
|
|
end
|
|
end
|
|
end
|