-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVagrantfile
50 lines (46 loc) · 1.35 KB
/
Vagrantfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# -*- mode: ruby -*-
# vi: set ft=ruby :
$install_docker_script = <<SCRIPT
echo "Installing dependencies ..."
sudo apt-get update
echo Installing Docker...
curl -sSL https://get.docker.com/ | sh
sudo usermod -aG docker vagrant
SCRIPT
BOX_NAME = "ubuntu/xenial64"
MEMORY = "512"
CPUS = 2
MANAGERS = 2
MANAGER_IP = "172.20.20.1"
WORKERS = 2
WORKER_IP = "172.20.20.10"
Vagrant.configure("2") do |config|
#Common setup
config.vm.box = BOX_NAME
config.vm.synced_folder ".", "/vagrant"
config.vm.provision "shell",inline: $install_docker_script, privileged: true
config.vm.provider "virtualbox" do |vb|
vb.memory = MEMORY
vb.cpus = CPUS
end
#Setup Manager Nodes
(1..MANAGERS).each do |i|
config.vm.define "manager0#{i}" do |manager|
manager.vm.network :private_network, ip: "#{MANAGER_IP}#{i}"
manager.vm.hostname = "manager0#{i}"
if i == 1
#Only configure port to host for Manager01
manager.vm.network :forwarded_port, guest: 8080, host: 8080
manager.vm.network :forwarded_port, guest: 5000, host: 5000
manager.vm.network :forwarded_port, guest: 9000, host: 9000
end
end
end
#Setup Woker Nodes
(1..WORKERS).each do |i|
config.vm.define "worker0#{i}" do |worker|
worker.vm.network :private_network, ip: "#{WORKER_IP}#{i}"
worker.vm.hostname = "worker0#{i}"
end
end
end