-
Notifications
You must be signed in to change notification settings - Fork 35
/
Copy pathVagrantfile
36 lines (31 loc) · 1.47 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
# -*- mode: ruby -*-
# vi: set ft=ruby :
vms = {
'automation' => {'memory' => '2048', 'cpus' => 2, 'ip' => '10', 'box' => 'debian/bullseye64', 'provision' => 'automation.sh'},
'balancer' => {'memory' => '256', 'cpus' => 1, 'ip' => '20', 'box' => 'debian/bullseye64','provision' => 'balancer.sh'},
'database' => {'memory' => '512', 'cpus' => 1, 'ip' => '30', 'box' => 'devopsbox/centos-8.5', 'provision' => 'database.sh'},
'docker1' => {'memory' => '512', 'cpus' => 1, 'ip' => '100', 'box' => 'debian/bullseye64', 'provision' => 'docker.sh'},
'docker2' => {'memory' => '512', 'cpus' => 1, 'ip' => '200', 'box' => 'devopsbox/centos-8.5', 'provision' => 'docker.sh'}
}
Vagrant.configure('2') do |config|
config.vm.box_check_update = false
vms.each do |name, conf|
config.vm.define "#{name}" do |k|
k.vm.box = "#{conf['box']}"
k.vm.hostname = "#{name}.example.com"
k.vm.network 'private_network', ip: "172.27.11.#{conf['ip']}"
k.vm.provider 'virtualbox' do |vb|
vb.customize ["modifyvm", :id, "--groups", "/InfraAgil"]
vb.memory = conf['memory']
vb.cpus = conf['cpus']
end
k.vm.provider 'libvirt' do |lv|
lv.memory = conf['memory']
lv.cpus = conf['cpus']
lv.cputopology :sockets => 1, :cores => conf['cpus'], :threads => '1'
end
k.vm.provision 'shell', path: "provision/#{conf['provision']}", args: "#{conf['ip']}"
end
end
config.vm.provision 'shell', path: 'provision/provision.sh'
end