Files
vagrant-docker-swarm/vagrant/Vagrantfile
2025-10-12 19:03:12 +01:00

61 lines
1.4 KiB
Ruby

num_workers = 1
nodes = [
{
hostname: 'swarm-master',
ip: '192.168.56.10',
ram: 256,
cpus: 1,
groups: ['swarm_master'],
},
]
(1..num_workers).each do |i|
nodes << {
hostname: "swarm-worker-#{i}",
ip: "192.168.56.#{10 + i}",
ram: 256,
cpus: 1,
groups: ['swarm_workers']
}
end
Vagrant.configure('2') do |config|
# config.vbguest.auto_update = true
groups = {}
nodes.each do |node|
node[:groups].each do |group|
groups[group] ||= []
groups[group] << node[:hostname]
end
end
config.vm.provision 'ansible' do |ansible|
ansible.playbook = 'setup.yml'
ansible.config_file = 'ansible.cfg'
ansible.groups = groups
# ansible.verbose = true
# ansible.limit = "all"
# ansible.raw_arguments = ["--timeout=60"]
end
nodes.each do |node|
puts "Provisioning node: #{node[:hostname]}"
config.vm.define node[:hostname] do |node_config|
node_config.vm.hostname = node[:hostname]
node_config.vm.box = 'debian/bullseye64'
# node_config.vm.box = 'generic/archlinux64'
# node_config.vm.box_version = "20250415.336224"
node_config.vm.network "private_network", ip: node[:ip]
node_config.vm.provider "virtualbox" do |vb|
vb.name = node[:hostname]
vb.memory = node[:ram]
vb.cpus = node[:cpus]
end
end
end
end