-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathVagrantfile
91 lines (75 loc) · 3.17 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
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
require 'yaml'
ENV['VAGRANT_DEFAULT_PROVIDER'] = 'digital_ocean'
dir = File.dirname(File.expand_path(__FILE__))
configValues = YAML.load_file("#{dir}/puphpet/config.yaml")
data = configValues['vagrantfile-digital_ocean']
Vagrant.require_version '>= 1.6.0'
Vagrant.configure('2') do |config|
config.vm.box = 'dummy'
config.vm.hostname = "#{data['vm']['hostname']}"
config.ssh.private_key_path = "#{data['ssh']['private_key_path']}"
config.ssh.username = "#{data['ssh']['username']}"
config.vm.provider :digital_ocean do |provider|
provider.token = "#{data['vm']['provider']['digital_ocean']['token']}"
provider.image = "#{data['vm']['provider']['digital_ocean']['image']}"
provider.region = "#{data['vm']['provider']['digital_ocean']['region']}"
provider.size = "#{data['vm']['provider']['digital_ocean']['size']}"
provider.ssh_key_name = "#{data['vm']['provider']['digital_ocean']['ssh_key_name']}"
end
data['vm']['synced_folder'].each do |i, folder|
if folder['source'] != '' && folder['target'] != ''
config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}"
end
end
config.vm.network :forwarded_port, guest: 3000, host: 3000
config.vm.provision 'shell' do |s|
s.path = 'puphpet/shell/initial-setup.sh'
s.args = '/vagrant/puphpet'
end
config.vm.provision :shell, :path => 'puphpet/shell/install-ruby.sh'
config.vm.provision :shell, :path => 'puphpet/shell/install-puppet.sh'
config.vm.provision :puppet do |puppet|
ssh_username = !data['ssh']['username'].nil? ? data['ssh']['username'] : 'vagrant'
puppet.facter = {
'ssh_username' => "#{ssh_username}",
'provisioner_type' => ENV['VAGRANT_DEFAULT_PROVIDER'],
'vm_target_key' => 'vagrantfile-digital_ocean',
}
puppet.manifests_path = "#{data['vm']['provision']['puppet']['manifests_path']}"
puppet.manifest_file = "#{data['vm']['provision']['puppet']['manifest_file']}"
puppet.module_path = "#{data['vm']['provision']['puppet']['module_path']}"
if !data['vm']['provision']['puppet']['options'].empty?
puppet.options = data['vm']['provision']['puppet']['options']
end
end
config.vm.provision :shell do |s|
s.path = 'puphpet/shell/execute-files.sh'
s.args = ['exec-once', 'exec-always']
end
config.vm.provision :shell, run: 'always' do |s|
s.path = 'puphpet/shell/execute-files.sh'
s.args = ['startup-once', 'startup-always']
end
config.vm.provision :shell, :path => 'puphpet/shell/important-notices.sh'
if !data['ssh']['host'].nil?
config.ssh.host = data['ssh']['host']
end
if !data['ssh']['port'].nil?
config.ssh.port = "#{data['ssh']['port']}"
end
if !data['ssh']['guest_port'].nil?
config.ssh.guest_port = data['ssh']['guest_port']
end
if !data['ssh']['shell'].nil?
config.ssh.shell = "#{data['ssh']['shell']}"
end
if !data['ssh']['keep_alive'].nil?
config.ssh.keep_alive = data['ssh']['keep_alive']
end
if !data['ssh']['forward_agent'].nil?
config.ssh.forward_agent = data['ssh']['forward_agent']
end
if !data['ssh']['forward_x11'].nil?
config.ssh.forward_x11 = data['ssh']['forward_x11']
end
end