-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathVagrantfile
120 lines (102 loc) · 3.77 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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.require_version '>= 1.6.5'
unless Vagrant.has_plugin?('nugrant')
warn "[\e[1m\e[31mERROR\e[0m]: Please run: vagrant plugin install nugrant"
exit -1
end
BRIDGE_NETWORK = '10.2.0.10'
BRIDGE_NETMASK = '255.255.0.0'
# Setup Defaults
#
# Sets up defaults for vagrant-nugrant
#
# @return hash with defaults
def setup_defaults()
{
'box' => {
'memory' => '2048',
'cpus' => '2'
}
}
end
Vagrant.configure(2) do |config|
config.user.defaults = setup_defaults
# sudo route -n add -net 172.17.0.0 10.2.0.10
# sudo route -nv add -net 192.168.59 -interface vboxnet1
# # OSX
# $> sudo route -n add -net 172.17.0.0 10.2.0.10
# Linux (untested)
# $> sudo route -net 172.17.0.0 netmask 255.255.0.0 gw 10.2.0.10
config.vm.define 'docker-host', {:primary => true} do |dh|
if Vagrant.has_plugin?('vagrant-cachier')
dh.cache.enable :generic, {"docker" => { cache_dir: "/cache-docker" }}
end
dh.vm.box = 'ubuntu/trusty64'
# http://stackoverflow.com/a/19758886/133514
# Disable the default synced folder
dh.vm.synced_folder '.', '/vagrant', :disabled => true
dh.vm.network :private_network, :ip => BRIDGE_NETWORK, :netmask => BRIDGE_NETMASK
dh.vm.network "forwarded_port", :guest => 2375, :host => 2375
dh.vm.provider :virtualbox do |vb|
# The --nicpromisc2 translates to Promiscuous mode for nic2, where nic2 -> eth1.
# So --nocpromisc3 would change that setting for eth2, etc.
vb.customize ["modifyvm", :id, "--nicpromisc2", "allow-all"]
vb.memory = config.user.box.memory
vb.cpus = config.user.box.cpus
end
dh.vm.provision 'ansible' do |ansible|
ansible.playbook = 'docker-host.yml'
ansible.host_key_checking = false
ansible.verbose = 'vvv'
ansible.extra_vars = {
:bridge_network => BRIDGE_NETWORK,
:bridge_netmask => BRIDGE_NETMASK,
:local_user => ENV['USER']
}
end
end
config.vm.define 'centos-docker-host', {:autostart => false} do |rhdh|
rhdh.vm.box = 'chef/centos-6.5'
rhdh.vm.synced_folder '.', '/vagrant', :disabled => true
rhdh.vm.network :private_network, :ip => BRIDGE_NETWORK, :netmask => BRIDGE_NETMASK
rhdh.vm.network "forwarded_port", :guest => 2375, :host => 2375
rhdh.vm.provider :virtualbox do |vb|
# The --nicpromisc2 translates to Promiscuous mode for nic2, where nic2 -> eth1.
# So --nocpromisc3 would change that setting for eth2, etc.
vb.customize ["modifyvm", :id, "--nicpromisc2", "allow-all"]
end
rhdh.vm.provision 'ansible' do |ansible|
ansible.playbook = 'docker-host.yml'
ansible.host_key_checking = false
ansible.extra_vars = {
:bridge_network => BRIDGE_NETWORK,
:bridge_netmask => BRIDGE_NETMASK,
:local_user => ENV['USER']
}
end
#
# rhdh.vm.provision 'ansible' do |ansible|
# ansible.playbook = 'emulate-amazon-linux.yml'
# ansible.host_key_checking = false
# ansible.extra_vars = {
# :AWS_ACCESS_KEY_ID => ENV['AWS_ACCESS_KEY_ID'],
# :AWS_SECRET_ACCESS_KEY => ENV['AWS_SECRET_ACCESS_KEY']
# }
# end
end
# config.vm.provision 'ansible' do |ansible|
# ansible.playbook = 'iamproxy.yml'
# ansible.host_key_checking = false
# ansible.extra_vars = {
# :AWS_ACCESS_KEY_ID => ENV['AWS_ACCESS_KEY_ID'],
# :AWS_SECRET_ACCESS_KEY => ENV['AWS_SECRET_ACCESS_KEY']
# }
# end
# The following line terminates all ssh connections. Therefore
# Vagrant will be forced to reconnect.
# That's a workaround to have the docker command in the PATH and
# add Vagrant to the docker group by logging in/out
config.vm.provision 'shell', :inline =>
"ps aux | grep 'sshd:' | awk '{print $2}' | xargs kill"
end