Files
vagrant-docker-swarm/Vagrantfile
2025-10-10 19:36:51 +01:00

107 lines
3.0 KiB
Ruby

# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
# Global configuration
config.vm.box = "debian/bookworm64"
config.vm.box_version = ">= 12.12.0"
# Disable automatic box update checking
config.vm.box_check_update = false
# Configure SSH
config.ssh.insert_key = true
# Configure shared folders
config.vm.synced_folder ".", "/vagrant", disabled: true
# Configure provider-specific settings
config.vm.provider "virtualbox" do |vb|
vb.name = "bare-bones-cluster"
vb.memory = "512"
vb.cpus = 1
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
end
# Configure libvirt provider
config.vm.provider "libvirt" do |libvirt|
libvirt.memory = 512
libvirt.cpus = 1
libvirt.driver = "kvm"
libvirt.connect_via_ssh = false
end
# Swarm Manager
config.vm.define "swarm-manager" do |manager|
manager.vm.hostname = "swarm-manager"
manager.vm.network "private_network", ip: "192.168.56.10"
# Port forwarding for Docker Swarm services
manager.vm.network "forwarded_port", guest: 9000, host: 19000, id: "portainer"
manager.vm.network "forwarded_port", guest: 8080, host: 18080, id: "traefik"
manager.vm.network "forwarded_port", guest: 80, host: 18081, id: "webapp"
manager.vm.provider "virtualbox" do |vb|
vb.name = "swarm-manager"
vb.memory = "512"
vb.cpus = 1
end
manager.vm.provider "libvirt" do |libvirt|
libvirt.memory = 512
libvirt.cpus = 1
end
end
# Swarm Worker 1
config.vm.define "swarm-worker1" do |worker1|
worker1.vm.hostname = "swarm-worker1"
worker1.vm.network "private_network", ip: "192.168.56.11"
worker1.vm.provider "virtualbox" do |vb|
vb.name = "swarm-worker1"
vb.memory = "512"
vb.cpus = 1
end
worker1.vm.provider "libvirt" do |libvirt|
libvirt.memory = 512
libvirt.cpus = 1
end
end
# Swarm Worker 2
config.vm.define "swarm-worker2" do |worker2|
worker2.vm.hostname = "swarm-worker2"
worker2.vm.network "private_network", ip: "192.168.56.12"
worker2.vm.provider "virtualbox" do |vb|
vb.name = "swarm-worker2"
vb.memory = "512"
vb.cpus = 1
end
worker2.vm.provider "libvirt" do |libvirt|
libvirt.memory = 512
libvirt.cpus = 1
end
end
# Swarm Worker 3
config.vm.define "swarm-worker3" do |worker3|
worker3.vm.hostname = "swarm-worker3"
worker3.vm.network "private_network", ip: "192.168.56.13"
worker3.vm.provider "virtualbox" do |vb|
vb.name = "swarm-worker3"
vb.memory = "512"
vb.cpus = 1
end
worker3.vm.provider "libvirt" do |libvirt|
libvirt.memory = 512
libvirt.cpus = 1
end
end
end