-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathVagrantfile
More file actions
96 lines (82 loc) · 3.96 KB
/
Vagrantfile
File metadata and controls
96 lines (82 loc) · 3.96 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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
require 'yaml'
net = YAML.load_file('network.yml')
VAGRANTFILE_API_VERSION = 2
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# -------- GLOBAL CONFIGURATION --------
# Provider configuration
config.vm.provider "docker" do |container|
container.create_args = ['--cpuset-cpus=2']
container.create_args = ['--memory=2g']
container.remains_running = true
container.has_ssh = true
end
# Provisionner configuration
config.vm.provision "ansible" do |ansible|
ansible.verbose = "v"
ansible.playbook = "playbooks/setup.yml"
end
config.vm.synced_folder '.', '/vagrant', disabled: true
# -------- CONTAINERS DEFINITION --------
config.vm.define "drone" do |config|
config.vm.network "private_network", ip: net['drone']['eth1'], netmask: 24
config.vm.network "private_network", ip: net['drone']['eth2'], netmask: 24
config.vm.network "private_network", ip: net['drone']['eth3'], netmask: 24
config.vm.network "private_network", ip: net['drone']['eth4'], netmask: 24
config.vm.network "private_network", ip: net['drone']['eth5'], netmask: 24
config.vm.provider "docker" do |d|
d.name = "drone"
d.image = "vagrant-ubuntu-22.04"
d.create_args = ["--hostname", "drone", "--cap-add=NET_ADMIN"]
d.env = {"INFLUXDB_IP" => net['influxdb']['eth1']}
end
end
config.vm.define "router" do |config|
config.vm.network "private_network", ip: net['router']['eth1'], netmask: 24
config.vm.network "private_network", ip: net['router']['eth2'], netmask: 24
config.vm.network "private_network", ip: net['router']['eth3'], netmask: 24
config.vm.network "private_network", ip: net['router']['eth4'], netmask: 24
config.vm.network "private_network", ip: net['router']['eth5'], netmask: 24
config.vm.network "private_network", ip: net['router']['eth6'], netmask: 24
config.vm.provider "docker" do |d|
d.name = "router"
d.image = "vagrant-ubuntu-22.04"
d.create_args = ["--hostname", "router", "--cap-add=NET_ADMIN"]
d.env = {"INFLUXDB_IP" => net['influxdb']['eth1']}
end
end
config.vm.define "server" do |config|
config.vm.network "private_network", ip: net['server']['eth1'], netmask: 24
config.vm.network "private_network", ip: net['server']['eth2'], netmask: 24
config.vm.provider "docker" do |d|
d.name = "server"
d.image = "vagrant-ubuntu-22.04"
d.create_args = ["--hostname", "server", "--cap-add=NET_ADMIN", "-v", "/tmp/.X11-unix/:/tmp/.X11-unix/", "-e", "DISPLAY=$DISPLAY", "--ipc=host"]
d.env = {"INFLUXDB_IP" => net['influxdb']['eth1']}
end
end
# -------- MONITORING --------
config.vm.define "influxdb" do |config|
config.vm.network "forwarded_port", host: net['influxdb']['host_port'], guest: net['influxdb']['guest_port']
config.vm.network "private_network", ip: net['influxdb']['eth1'], netmask: 24
config.vm.provider "docker" do |d|
d.name = "influxdb"
d.build_dir = "./docker/influxdb"
d.build_args = ["--tag", "influxdb"]
d.create_args = ["--hostname", "influxdb"]
d.env = {"INFLUXDB_IP" => net['influxdb']['eth1']}
d.has_ssh = false
end
end
config.vm.define "grafana" do |config|
config.vm.network "forwarded_port", host: net['grafana']['host_port'], guest: net['grafana']['guest_port']
config.vm.network "private_network", ip: net['grafana']['eth1'], netmask: 24
config.vm.provider "docker" do |d|
d.name = "grafana"
d.build_dir = "./docker/grafana"
d.build_args = ["--tag", "grafana"]
d.create_args = ["--hostname", "grafana"]
d.env = {"INFLUXDB_IP" => net['influxdb']['eth1']}
d.has_ssh = false
end
end
end