This repository has been archived by the owner on Nov 29, 2017. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathVagrantfile
99 lines (82 loc) · 3.24 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
# -*- mode: ruby -*-
# # vi: set ft=ruby :
Vagrant.require_plugin "vagrant-berkshelf"
Vagrant.require_plugin "vagrant-omnibus"
Vagrant.configure("2") do |config|
# All Vagrant configuration is done here. The most common configuration
# options are documented and commented below. For a complete reference,
# please see the online documentation at vagrantup.com.
# The path to the Berksfile to use with Vagrant Berkshelf
# config.berkshelf.berksfile_path = "./Berksfile"
# An array of symbols representing groups of cookbook described in the Vagrantfile
# to skip installing and copying to Vagrant's shelf.
# config.berkshelf.only = []
# An array of symbols representing groups of cookbook described in the Vagrantfile
# to skip installing and copying to Vagrant's shelf.
# config.berkshelf.except = []
config.berkshelf.enabled = true
config.omnibus.chef_version = :latest
config.vm.host_name = "dnsmasq-berkshelf"
config.vm.box = "precise64"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
# Boot with a GUI so you can see the screen. (Default is headless)
# config.vm.boot_mode = :gui
# Assign this VM to a host-only network IP, allowing you to access it
# via the IP. Host-only networks can talk to the host machine as well as
# any other machines on the same network, but cannot be accessed (through this
# network interface) by any external networks.
config.vm.network :private_network, ip: "33.33.33.10"
# Assign this VM to a bridged network, allowing you to connect directly to a
# network using the host's network device. This makes the VM appear as another
# physical device on your network.
# config.vm.network :bridged
# Forward a port from the guest to the host, which allows for outside
# computers to access the VM, whereas host only networking does not.
# config.vm.forward_port 80, 8080
# Share an additional folder to the guest VM. The first argument is
# an identifier, the second is the path on the guest to mount the
# folder, and the third is the path on the host to the actual folder.
# config.vm.share_folder "v-data", "/vagrant_data", "../data"
config.vm.provision :shell, :inline => "apt-get update --yes"
config.vm.provision :chef_solo do |chef|
chef.json = {
'dnsmasq' => {
'dhcp' => {
'default_route' => '33.33.33.1',
'dhcp_range' => '33.33.33.100,33.33.33.150,12h',
'dhcp_hosts' => [
'11:22:33:44:55:66,33.33.33.101'
],
'tags' => [
{
:tag_name => "alternate_internet",
:dhcp_hosts => [
"11:22:33:44:55:66,33.33.33.151"
],
:dhcp_range => "33.33.33.100,33.33.33.150,12h",
:mac_addresses => [
"00:60:8C:*:*:*"
],
:route => "33.33.33.2"
}
]
},
'domain' => 'testlan',
'dns' => {
'nameservers' => [
'8.8.8.8',
'8.8.4.4'
],
'hosts' => {
"this-is-a-test" => "10.0.0.2",
"also-a-test.com" => "10.0.0.3"
}
}
}
}
chef.run_list = [
"recipe[dnsmasq::dhcp]",
"recipe[dnsmasq::dns]"
]
end
end