Skip to content

Instantly share code, notes, and snippets.

@theodesp
Last active February 15, 2023 12:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save theodesp/2ca472b72234e73eef5e70959478bad4 to your computer and use it in GitHub Desktop.
Save theodesp/2ca472b72234e73eef5e70959478bad4 to your computer and use it in GitHub Desktop.
Docker Swarm Vagrant Setup
# -*- mode: ruby -*-
# vi: set ft=ruby :
$install_docker_script = <<SCRIPT
sudo apt-get update
sudo apt-get install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker vagrant
SCRIPT
vm_box = 'ubuntu/focal64'
Vagrant.configure('2') do |config|
config.vm.define :manager, primary: true do |manager|
manager.vm.box = vm_box
manager.vm.box_check_update = true
manager.vm.network :private_network, ip: "10.10.10.2"
manager.vm.network :forwarded_port, guest: 8080, host: 8080
manager.vm.network :forwarded_port, guest: 8000, host: 8000
manager.vm.hostname = "manager"
manager.vm.synced_folder ".", "/vagrant"
manager.vm.provision "shell", inline: $install_docker_script, privileged: true
manager.vm.provider "virtualbox" do |vb|
vb.gui = true
vb.name = "manager"
vb.memory = "512"
end
end
(1..3).each do |i|
config.vm.define "worker0#{i}" do |worker|
worker.vm.box = vm_box
worker.vm.box_check_update = true
worker.vm.network :private_network, ip: "10.10.10.2#{i}"
worker.vm.hostname = "worker0#{i}"
worker.vm.synced_folder ".", "/vagrant"
worker.vm.provision "shell", inline: $install_docker_script, privileged: true
worker.vm.provider "virtualbox" do |vb|
vb.gui = true
vb.name = "worker0#{i}"
vb.memory = "512"
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment