107 lines
3.0 KiB
Ruby
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 |