/
Vagrantfile
43 lines (32 loc) · 1.34 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
#!/usr/bin/env ruby
require 'yaml'
PLAYBOOK = 'vagrant.yml'
CONFIGURATION_FILE = 'group_vars/all.yml'
Vagrant.configure('2') do |config|
# puts "[DEBUG] loading box settings from #{CONFIGURATION_FILE}..."
vagrant_environment = YAML.load_file(File.expand_path(CONFIGURATION_FILE, File.dirname(__FILE__)))
vagrant_environment['vagrant'].each do |box_name, box_settings|
if not box_settings['enabled']
# puts "[DEBUG] #{box_name} is not enabled. skipping..."
next
end
# puts "[DEBUG] applying #{box_name} settings..."
config.vm.define "#{box_name}" do |host|
host.vm.box = box_settings['box'] unless not box_settings.key? 'box'
host.vm.hostname = box_name
host.vm.network box_settings['network']['name'], ip: box_settings['network']['ip'] unless box_settings.key? 'network'
# puts "[DEBUG] applying virtualbox provider settings for #{box_name} box..."
config.vm.provider "#{box_settings['provider']}" do | provider |
box_settings['provider'].each do |key, value|
next if key == 'name'
provider.send("#{key}=", value)
end
end
# puts "[DEBUG] provisioning #{box_name} using ansible vagrant playbook..."
config.vm.provision 'ansible' do |ansible|
ansible.playbook = PLAYBOOK
ansible.verbose = 'v'
end
end
end
end