-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathVagrantfile.example
More file actions
45 lines (37 loc) · 1.67 KB
/
Vagrantfile.example
File metadata and controls
45 lines (37 loc) · 1.67 KB
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
# -*- mode: ruby -*-
# vi: set ft=ruby :
guest_os = "ubuntu/xenial64"
nodes = [
{ :hostname => 'web1', :ram => 512, :ip => '192.168.2.10', :roles => ['web'] },
{ :hostname => 'web2', :ram => 512, :ip => '192.168.2.11' , :roles => ['web'] },
{ :hostname => 'cron', :ram => 512, :ip => '192.168.2.20' , :roles => ['worker'] },
{ :hostname => 'worker', :ram => 512, :ip => '192.168.2.30', :roles => ['cron'] },
{ :hostname => 'ably', :ram => 512, :ip => '192.168.2.40' , :roles => ['ably'] },
{ :hostname => 'mysql', :ram => 512, :ip => '192.168.2.50', :roles => ['mysql'] },
{ :hostname => 'redis', :ram => 512, :ip => '192.168.2.60', :roles => ['redis'] },
{ :hostname => 'staging', :ram => 512, :ip => '192.168.2.70', :roles => ['staging'] },
{ :hostname => 'jumpbox', :ram => 512, :ip => '192.168.2.80', :roles => ['jumpbox'] }
]
Vagrant.configure("2") do |config|
config.vm.box_check_update = false
nodes.each do |node|
config.vm.define node[:hostname] do |nodeconfig|
nodeconfig.vm.box = guest_os
nodeconfig.vm.network "private_network", ip: node[:ip]
nodeconfig.vm.hostname = node[:hostname] + ".box"
config.vm.provider "virtualbox" do |vb|
vb.gui = false
vb.name = node[:hostname]
vb.check_guest_additions = false
vb.memory = node[:ram]
end
nodeconfig.vm.provision "shell", privileged: true, path: "scripts/bootstrap.sh"
node[:roles].each do |role|
nodeconfig.vm.provision :shell, privileged: true, path: "scripts/#{role}.sh"
if ["jumpbox"].include? role
nodeconfig.vm.synced_folder ".", "/opt/capistrano_rvm_eye", owner: "ubuntu"
end
end
end
end
end