-
Notifications
You must be signed in to change notification settings - Fork 0
/
Vagrantfile
64 lines (56 loc) · 2.03 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
# -*- mode: ruby -*-
# set default values
vm_name = 'gce4vpn'
vm_name = ENV['vm_name'] unless ENV['vm_name'].nil?
# needed for fixing issue with different MAC on eth0 & in /etc/sysconfig/network-scripts
vm_mac = '00155D38011B'
vm_box = 'bento/centos-7.4'
vm_ram = 512
no_proxy = ENV['no_proxy']
http_proxy = ENV['http_proxy']
rsync_excl = ['.git/', '.vagrant/', '.kitchen/', '.terraform/', '.terraform.tfstate.lock', '*.tfstate']
proxy_docker_conf_dir = '/etc/systemd/system/docker.service.d'
proxy_docker_conf_path = "#{proxy_docker_conf_dir}/30-proxy.conf"
proxy_docker_config = <<-HEREDOC
[Service]
Environment=HTTP_PROXY=#{http_proxy}
Environment=HTTPS_PROXY=#{http_proxy}
Environment=NO_PROXY=#{no_proxy}
HEREDOC
puts "Use http_proxy: '#{http_proxy}'"
puts "Use no_proxy : '#{no_proxy}'"
# *****************************************************************************#
Vagrant.configure('2') do |config|
# configure vagrant-proxyconf plugin
unless http_proxy.nil?
raise 'Install plugin vagrant-proxyconf' unless Vagrant.has_plugin?('vagrant-proxyconf')
config.proxy.enabled = true
config.proxy.http = http_proxy
config.proxy.https = http_proxy
config.proxy.no_proxy = no_proxy
config.vm.provision 'shell', inline: " \
echo '#{proxy_docker_config}' > /home/vagrant/docker.tmp ;\
sudo mkdir -p #{proxy_docker_conf_dir} ;\
sudo cp /home/vagrant/docker.tmp #{proxy_docker_conf_path}"
end
config.vm.synced_folder '.', '/vagrant', type: 'rsync', rsync__exclude: rsync_excl
config.vm.hostname = vm_name
config.vm.box = vm_box
config.vm.provision 'ansible_local' do |ansible|
ansible.playbook = '/vagrant/gce4vpn.yml'
end
# for kitchen we use virtualbox backend
config.vm.provider 'hyperv' do |h|
h.vm_integration_services = {
guest_service_interface: true,
heartbeat: true,
key_value_pair_exchange: true,
shutdown: true,
time_synchronization: true,
vss: true
}
h.memory = vm_ram
h.mac = vm_mac
h.vmname = vm_name
end
end