landrush 0.19.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.config/cucumber.yml +7 -0
- data/.gitignore +6 -4
- data/.rubocop.yml +5 -0
- data/.rubocop_todo.yml +32 -259
- data/CHANGELOG.md +8 -1
- data/CONTRIBUTING.md +11 -10
- data/Gemfile +7 -4
- data/Gemfile.lock +178 -0
- data/README.md +148 -35
- data/Rakefile +18 -0
- data/doc/img/advanced-tcp-properties.png +0 -0
- data/doc/img/network-connections.png +0 -0
- data/features/dns_resolution.feature +26 -0
- data/features/step_definitions/dns.rb +19 -0
- data/features/support/env.rb +16 -0
- data/landrush.gemspec +1 -2
- data/lib/landrush.rb +0 -12
- data/lib/landrush/action/common.rb +5 -5
- data/lib/landrush/action/redirect_dns.rb +1 -1
- data/lib/landrush/action/setup.rb +9 -14
- data/lib/landrush/action/teardown.rb +5 -1
- data/lib/landrush/cap/debian/install_iptables.rb +2 -2
- data/lib/landrush/cap/linux/add_iptables_rule.rb +0 -1
- data/lib/landrush/cap/linux/redirect_dns.rb +0 -1
- data/lib/landrush/cap/redhat/install_iptables.rb +2 -2
- data/lib/landrush/command.rb +8 -10
- data/lib/landrush/config.rb +1 -1
- data/lib/landrush/dependent_vms.rb +2 -2
- data/lib/landrush/os.rb +19 -0
- data/lib/landrush/plugin.rb +4 -4
- data/lib/landrush/resolver_config.rb +1 -5
- data/lib/landrush/server.rb +187 -25
- data/lib/landrush/store.rb +12 -4
- data/lib/landrush/version.rb +1 -1
- data/test/landrush/action/setup_test.rb +14 -9
- data/test/landrush/action/teardown_test.rb +8 -9
- data/test/landrush/cap/linux/configured_dns_servers_test.rb +2 -2
- data/test/landrush/cap/linux/read_host_visible_ip_address_test.rb +5 -7
- data/test/landrush/cap/linux/redirect_dns_test.rb +1 -1
- data/test/landrush/resolver_config_test.rb +0 -2
- data/test/landrush/server_test.rb +18 -12
- data/test/landrush/store_test.rb +7 -6
- data/test/support/clear_dependent_vms.rb +4 -2
- data/test/support/create_fake_working_dir.rb +19 -0
- data/test/support/delete_fake_working_dir.rb +12 -0
- data/test/support/fake_resolver_config.rb +8 -3
- data/test/support/test_server_daemon.rb +20 -15
- data/test/test_helper.rb +31 -22
- metadata +26 -28
- data/lib/ext/rexec.rb +0 -10
- data/test/support/fake_working_dir.rb +0 -16
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
## [Unreleased][unreleased]
|
2
|
+
|
3
|
+
- Added: Acceptance CI tests ([#136](https://github.com/vagrant-landrush/landrush/issues/136))
|
4
|
+
- Fixed: Making sure that the right Vagrant data dir is used ([#172](https://github.com/vagrant-landrush/landrush/pull/172))
|
5
|
+
- Added: Getting Landrush to work on Windows ([#170](https://github.com/vagrant-landrush/landrush/pull/170))
|
6
|
+
|
1
7
|
## [0.19.0] - 2016-03-10
|
2
8
|
- Added: Support for libvirt provider (#138)
|
3
9
|
- Added: support for CNAME records (#99)
|
@@ -13,7 +19,8 @@
|
|
13
19
|
## [0.16.0] - 2015-01-18
|
14
20
|
- Added: Support for IN::PTR records (#98)
|
15
21
|
|
16
|
-
[unreleased]: https://github.com/phinze/landrush/compare/v0.
|
22
|
+
[unreleased]: https://github.com/phinze/landrush/compare/v0.19.0...HEAD
|
23
|
+
[0.19.0]: https://github.com/phinze/landrush/compare/v0.18.0...v0.19.0
|
17
24
|
[0.18.0]: https://github.com/phinze/landrush/compare/v0.17.0...v0.18.0
|
18
25
|
[0.17.0]: https://github.com/phinze/landrush/compare/v0.16.0...v0.17.0
|
19
26
|
[0.16.0]: https://github.com/phinze/landrush/compare/v0.15.4...v0.16.0
|
data/CONTRIBUTING.md
CHANGED
@@ -9,9 +9,9 @@ they will be added to this document.
|
|
9
9
|
|
10
10
|
## Pull Requests
|
11
11
|
|
12
|
-
* All changes should be made by pull request (PR), even from maintainers.
|
12
|
+
* All changes should be made by pull request (PR), even from maintainers.
|
13
13
|
* All changes should include documentation updates.
|
14
|
-
* Small changes need only 1 ACK.
|
14
|
+
* Small changes need only 1 ACK. Larger changes need 2 ACKs from
|
15
15
|
maintainers before they will be merged. If the author of the PR is a
|
16
16
|
maintainer, the submission is considered 1 of the 2 ACKs. Therefore PRs
|
17
17
|
from maintainers only require one additional ACK. By "2 ACKs" we mean
|
@@ -34,9 +34,9 @@ Prereqs:
|
|
34
34
|
|
35
35
|
Steps:
|
36
36
|
|
37
|
-
1. Update `lib/version.rb` with version number.
|
37
|
+
1. Update `lib/landrush/version.rb` with version number.
|
38
38
|
2. Update `CHANGELOG.md` header with version number and current date.
|
39
|
-
3. Make release commit: `git add lib/version.rb CHANGELOG.md; git commit -m 'cut vX.Y.Z'`
|
39
|
+
3. Make release commit: `git add lib/landrush/version.rb CHANGELOG.md; git commit -m 'cut vX.Y.Z'`
|
40
40
|
4. Make release tag: `git tag -m vX.Y.Z vX.Y.Z`
|
41
41
|
5. Push release commit: `git push origin master`
|
42
42
|
6. Build release: `rake build`
|
@@ -45,9 +45,10 @@ Steps:
|
|
45
45
|
|
46
46
|
## Maintainers
|
47
47
|
|
48
|
-
*
|
49
|
-
* Eric Sorenson (
|
50
|
-
*
|
51
|
-
*
|
52
|
-
*
|
53
|
-
* Paul Hinze (
|
48
|
+
* Brian Exelbierd (@bexelbie)
|
49
|
+
* Eric Sorenson (@ahpook)
|
50
|
+
* Florian Holzhauer (@fh)
|
51
|
+
* Hardy Ferentschik (@hferentschik)
|
52
|
+
* Josef Strzibny (@strzibny)
|
53
|
+
* Paul Hinze (@phinze)
|
54
|
+
* Reto Kaiser (@njam)
|
data/Gemfile
CHANGED
@@ -3,9 +3,9 @@ source 'https://rubygems.org'
|
|
3
3
|
# Can't use `gemspec` to pull in dependencies, because the landrush gem needs
|
4
4
|
# to be in the :plugins group for Vagrant to detect and load it in development
|
5
5
|
|
6
|
-
gem 'rubydns', '
|
7
|
-
gem 'rexec'
|
6
|
+
gem 'rubydns', '0.8.5'
|
8
7
|
gem 'rake'
|
8
|
+
gem 'json'
|
9
9
|
|
10
10
|
# Vagrant's special group
|
11
11
|
group :plugins do
|
@@ -18,10 +18,13 @@ end
|
|
18
18
|
|
19
19
|
group :development do
|
20
20
|
gem 'vagrant',
|
21
|
-
|
22
|
-
|
21
|
+
:git => 'git://github.com/mitchellh/vagrant.git',
|
22
|
+
:ref => 'v1.8.1'
|
23
23
|
|
24
24
|
gem 'byebug'
|
25
25
|
gem 'mocha'
|
26
26
|
gem 'minitest'
|
27
|
+
gem 'cucumber', '~> 2.1'
|
28
|
+
gem 'aruba', '~> 0.13'
|
29
|
+
gem 'komenda', '~> 0.1.6'
|
27
30
|
end
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,178 @@
|
|
1
|
+
GIT
|
2
|
+
remote: git://github.com/mitchellh/vagrant.git
|
3
|
+
revision: c1c00e2f3cf69c579a5aa6922d67bb838a2de9cd
|
4
|
+
ref: v1.8.1
|
5
|
+
specs:
|
6
|
+
vagrant (1.8.1)
|
7
|
+
bundler (>= 1.5.2, <= 1.10.6)
|
8
|
+
childprocess (~> 0.5.0)
|
9
|
+
erubis (~> 2.7.0)
|
10
|
+
hashicorp-checkpoint (~> 0.1.1)
|
11
|
+
i18n (>= 0.6.0, <= 0.8.0)
|
12
|
+
listen (~> 3.0.2)
|
13
|
+
log4r (~> 1.1.9, < 1.1.11)
|
14
|
+
net-scp (~> 1.1.0)
|
15
|
+
net-sftp (~> 2.1)
|
16
|
+
net-ssh (~> 3.0.1)
|
17
|
+
nokogiri (= 1.6.3.1)
|
18
|
+
rb-kqueue (~> 0.2.0)
|
19
|
+
rest-client (>= 1.6.0, < 2.0)
|
20
|
+
wdm (~> 0.1.0)
|
21
|
+
winrm (~> 1.3)
|
22
|
+
winrm-fs (~> 0.2.2)
|
23
|
+
|
24
|
+
PATH
|
25
|
+
remote: .
|
26
|
+
specs:
|
27
|
+
landrush (1.0.0)
|
28
|
+
rubydns (= 0.8.5)
|
29
|
+
|
30
|
+
GEM
|
31
|
+
remote: https://rubygems.org/
|
32
|
+
specs:
|
33
|
+
aruba (0.14.1)
|
34
|
+
childprocess (~> 0.5.6)
|
35
|
+
contracts (~> 0.9)
|
36
|
+
cucumber (>= 1.3.19)
|
37
|
+
ffi (~> 1.9.10)
|
38
|
+
rspec-expectations (>= 2.99)
|
39
|
+
thor (~> 0.19)
|
40
|
+
ast (2.2.0)
|
41
|
+
builder (3.2.2)
|
42
|
+
byebug (8.2.1)
|
43
|
+
childprocess (0.5.9)
|
44
|
+
ffi (~> 1.0, >= 1.0.11)
|
45
|
+
contracts (0.13.0)
|
46
|
+
cucumber (2.3.3)
|
47
|
+
builder (>= 2.1.2)
|
48
|
+
cucumber-core (~> 1.4.0)
|
49
|
+
cucumber-wire (~> 0.0.1)
|
50
|
+
diff-lcs (>= 1.1.3)
|
51
|
+
gherkin (~> 3.2.0)
|
52
|
+
multi_json (>= 1.7.5, < 2.0)
|
53
|
+
multi_test (>= 0.1.2)
|
54
|
+
cucumber-core (1.4.0)
|
55
|
+
gherkin (~> 3.2.0)
|
56
|
+
cucumber-wire (0.0.1)
|
57
|
+
diff-lcs (1.2.5)
|
58
|
+
domain_name (0.5.25)
|
59
|
+
unf (>= 0.0.5, < 1.0.0)
|
60
|
+
erubis (2.7.0)
|
61
|
+
eventmachine (1.0.8)
|
62
|
+
events (0.9.8)
|
63
|
+
ffi (1.9.10)
|
64
|
+
ffi (1.9.10-x64-mingw32)
|
65
|
+
gherkin (3.2.0)
|
66
|
+
gssapi (1.2.0)
|
67
|
+
ffi (>= 1.0.1)
|
68
|
+
gyoku (1.3.1)
|
69
|
+
builder (>= 2.1.2)
|
70
|
+
hashicorp-checkpoint (0.1.4)
|
71
|
+
http-cookie (1.0.2)
|
72
|
+
domain_name (~> 0.5)
|
73
|
+
httpclient (2.7.1)
|
74
|
+
i18n (0.7.0)
|
75
|
+
json (1.8.3)
|
76
|
+
komenda (0.1.6)
|
77
|
+
events (~> 0.9.8)
|
78
|
+
listen (3.0.5)
|
79
|
+
rb-fsevent (>= 0.9.3)
|
80
|
+
rb-inotify (>= 0.9)
|
81
|
+
little-plugger (1.1.4)
|
82
|
+
log4r (1.1.10)
|
83
|
+
logging (1.8.2)
|
84
|
+
little-plugger (>= 1.1.3)
|
85
|
+
multi_json (>= 1.8.4)
|
86
|
+
metaclass (0.0.4)
|
87
|
+
mime-types (2.99)
|
88
|
+
mini_portile (0.6.0)
|
89
|
+
minitest (5.8.4)
|
90
|
+
mocha (1.1.0)
|
91
|
+
metaclass (~> 0.0.1)
|
92
|
+
multi_json (1.11.2)
|
93
|
+
multi_test (0.1.2)
|
94
|
+
net-scp (1.1.2)
|
95
|
+
net-ssh (>= 2.6.5)
|
96
|
+
net-sftp (2.1.2)
|
97
|
+
net-ssh (>= 2.6.5)
|
98
|
+
net-ssh (3.0.2)
|
99
|
+
netrc (0.11.0)
|
100
|
+
nokogiri (1.6.3.1)
|
101
|
+
mini_portile (= 0.6.0)
|
102
|
+
nokogiri (1.6.3.1-x64-mingw32)
|
103
|
+
mini_portile (= 0.6.0)
|
104
|
+
nori (2.6.0)
|
105
|
+
parser (2.3.0.7)
|
106
|
+
ast (~> 2.2)
|
107
|
+
powerpack (0.1.1)
|
108
|
+
rainbow (2.1.0)
|
109
|
+
rake (10.4.2)
|
110
|
+
rb-fsevent (0.9.7)
|
111
|
+
rb-inotify (0.9.5)
|
112
|
+
ffi (>= 0.5.0)
|
113
|
+
rb-kqueue (0.2.4)
|
114
|
+
ffi (>= 0.5.0)
|
115
|
+
rest-client (1.8.0)
|
116
|
+
http-cookie (>= 1.0.2, < 2.0)
|
117
|
+
mime-types (>= 1.16, < 3.0)
|
118
|
+
netrc (~> 0.7)
|
119
|
+
rest-client (1.8.0-x64-mingw32)
|
120
|
+
ffi (~> 1.9)
|
121
|
+
http-cookie (>= 1.0.2, < 2.0)
|
122
|
+
mime-types (>= 1.16, < 3.0)
|
123
|
+
netrc (~> 0.7)
|
124
|
+
rspec-expectations (3.4.0)
|
125
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
126
|
+
rspec-support (~> 3.4.0)
|
127
|
+
rspec-support (3.4.1)
|
128
|
+
rubocop (0.38.0)
|
129
|
+
parser (>= 2.3.0.6, < 3.0)
|
130
|
+
powerpack (~> 0.1)
|
131
|
+
rainbow (>= 1.99.1, < 3.0)
|
132
|
+
ruby-progressbar (~> 1.7)
|
133
|
+
unicode-display_width (~> 1.0, >= 1.0.1)
|
134
|
+
ruby-progressbar (1.7.5)
|
135
|
+
rubydns (0.8.5)
|
136
|
+
eventmachine (~> 1.0.0)
|
137
|
+
rubyntlm (0.4.0)
|
138
|
+
rubyzip (1.1.7)
|
139
|
+
thor (0.19.1)
|
140
|
+
unf (0.1.4)
|
141
|
+
unf_ext
|
142
|
+
unf_ext (0.0.7.1)
|
143
|
+
unf_ext (0.0.7.1-x64-mingw32)
|
144
|
+
unicode-display_width (1.0.3)
|
145
|
+
uuidtools (2.1.5)
|
146
|
+
wdm (0.1.1)
|
147
|
+
winrm (1.3.6)
|
148
|
+
builder (>= 2.1.2)
|
149
|
+
gssapi (~> 1.2)
|
150
|
+
gyoku (~> 1.0)
|
151
|
+
httpclient (~> 2.2, >= 2.2.0.2)
|
152
|
+
logging (>= 1.6.1, < 3.0)
|
153
|
+
nori (~> 2.0)
|
154
|
+
rubyntlm (~> 0.4.0)
|
155
|
+
uuidtools (~> 2.1.2)
|
156
|
+
winrm-fs (0.2.3)
|
157
|
+
erubis (~> 2.7)
|
158
|
+
logging (~> 1.6, >= 1.6.1)
|
159
|
+
rubyzip (~> 1.1)
|
160
|
+
winrm (~> 1.3.0)
|
161
|
+
|
162
|
+
PLATFORMS
|
163
|
+
ruby
|
164
|
+
x64-mingw32
|
165
|
+
|
166
|
+
DEPENDENCIES
|
167
|
+
aruba (~> 0.13)
|
168
|
+
byebug
|
169
|
+
cucumber (~> 2.1)
|
170
|
+
json
|
171
|
+
komenda (~> 0.1.6)
|
172
|
+
landrush!
|
173
|
+
minitest
|
174
|
+
mocha
|
175
|
+
rake
|
176
|
+
rubocop (~> 0.38.0)
|
177
|
+
rubydns (= 0.8.5)
|
178
|
+
vagrant!
|
data/README.md
CHANGED
@@ -1,19 +1,46 @@
|
|
1
|
-
# Landrush: DNS for Vagrant [](https://travis-ci.org/vagrant-landrush/landrush)
|
2
|
+
|
3
|
+
Simple cross-platform DNS that's visible on both the guest and the host.
|
4
|
+
|
5
|
+
Landrush spins up a small DNS server and redirects DNS traffic from your
|
6
|
+
VMs to use it, automatically registering/unregistering IP addresses of guests
|
7
|
+
as they come up and down.
|
8
|
+
|
9
|
+
**Note**: Windows support is currently considered experimental. If you having
|
10
|
+
problems using Landrush on Windows please let us know.
|
11
|
+
|
12
|
+
<!-- MarkdownTOC -->
|
13
|
+
|
14
|
+
- [Installation](#installation)
|
15
|
+
- [Usage](#usage)
|
16
|
+
- [Get started](#get-started)
|
17
|
+
- [Dynamic entries](#dynamic-entries)
|
18
|
+
- [Static entries](#static-entries)
|
19
|
+
- [Wildcard Subdomains](#wildcard-subdomains)
|
20
|
+
- [Unmatched Queries](#unmatched-queries)
|
21
|
+
- [Visibility on the Guest](#visibility-on-the-guest)
|
22
|
+
- [Visibility on the Host](#visibility-on-the-host)
|
23
|
+
- [OS X](#os-x)
|
24
|
+
- [Linux](#linux)
|
25
|
+
- [Windows](#windows)
|
26
|
+
- [Other Devices \(phone\)](#other-devices-phone)
|
27
|
+
- [Additional CLI commands](#additional-cli-commands)
|
28
|
+
- [Development](#development)
|
29
|
+
- [Help Out!](#help-out)
|
30
|
+
|
31
|
+
<!-- /MarkdownTOC -->
|
32
|
+
|
33
|
+
<a name="installation"></a>
|
9
34
|
## Installation
|
10
35
|
|
11
36
|
Install under Vagrant (1.1 or later):
|
12
37
|
|
13
38
|
$ vagrant plugin install landrush
|
14
39
|
|
40
|
+
<a name="usage"></a>
|
15
41
|
## Usage
|
16
42
|
|
43
|
+
<a name="get-started"></a>
|
17
44
|
### Get started
|
18
45
|
|
19
46
|
Enable the plugin in your `Vagrantfile`:
|
@@ -32,6 +59,7 @@ If you shut down your guest, the entries associated with it will be removed.
|
|
32
59
|
|
33
60
|
Landrush assigns your vm's hostname from either the vagrant config (see the `examples/Vagrantfile`) or system's actual hostname by running the `hostname` command. A default of "guest-vm" is assumed if hostname is otherwise not available.
|
34
61
|
|
62
|
+
<a name="dynamic-entries"></a>
|
35
63
|
### Dynamic entries
|
36
64
|
|
37
65
|
Every time a VM is started, its IP address is automatically detected and a DNS record is created that maps the hostname to its IP.
|
@@ -42,6 +70,7 @@ If for any reason the auto-detection detects no IP address or the wrong IP addre
|
|
42
70
|
|
43
71
|
If you are using a multi-machine `Vagrantfile`, configure this inside each of your `config.vm.define` sections.
|
44
72
|
|
73
|
+
<a name="static-entries"></a>
|
45
74
|
### Static entries
|
46
75
|
|
47
76
|
You can add static host entries to the DNS server in your `Vagrantfile` like so:
|
@@ -50,6 +79,7 @@ You can add static host entries to the DNS server in your `Vagrantfile` like so:
|
|
50
79
|
|
51
80
|
This is great for overriding production services for nodes you might be testing locally. For example, perhaps you might want to override the hostname of your puppetmaster to point to a local vagrant box instead.
|
52
81
|
|
82
|
+
<a name="wildcard-subdomains"></a>
|
53
83
|
### Wildcard Subdomains
|
54
84
|
|
55
85
|
For your convenience, any subdomain of a DNS entry known to landrush will resolve to the same IP address as the entry. For example: given `myhost.vagrant.test -> 1.2.3.4`, both `foo.myhost.vagrant.test` and `bar.myhost.vagrant.test` will also resolve to `1.2.3.4`.
|
@@ -60,6 +90,7 @@ If you would like to configure your guests to be accessible from the host as sub
|
|
60
90
|
|
61
91
|
Note that from the __host__, you will only be able to access subdomains of your configured TLD by default- so wildcard subdomains only apply to that space. For the __guest__, wildcard subdomains work for anything.
|
62
92
|
|
93
|
+
<a name="unmatched-queries"></a>
|
63
94
|
### Unmatched Queries
|
64
95
|
|
65
96
|
Any DNS queries that do not match will be passed through to an upstream DNS server, so this will be able to serve as the one-stop shop for your guests' DNS needs.
|
@@ -72,6 +103,7 @@ If you would like to configure your own upstream servers, add upstream entries t
|
|
72
103
|
# If your upstream is TCP only for some strange reason
|
73
104
|
config.landrush.upstream '10.1.3.10', 1001, :tcp
|
74
105
|
|
106
|
+
<a name="visibility-on-the-guest"></a>
|
75
107
|
### Visibility on the Guest
|
76
108
|
|
77
109
|
Linux guests should automatically have their DNS traffic redirected via `iptables` rules to the Landrush DNS server. File an issue if this does not work for you.
|
@@ -83,12 +115,20 @@ To disable this functionality:
|
|
83
115
|
You may want to do this if you are already proxying all your DNS requests through your host (e.g. using VirtualBox's natdnshostresolver1 option) and you
|
84
116
|
have DNS servers that you can easily set as upstreams in the daemon (e.g. DNS requests that go through the host's VPN connection).
|
85
117
|
|
118
|
+
<a name="visibility-on-the-host"></a>
|
86
119
|
### Visibility on the Host
|
87
120
|
|
121
|
+
<a name="os-x"></a>
|
122
|
+
#### OS X
|
123
|
+
|
88
124
|
If you're on an OS X host, we use a nice trick to unobtrusively add a secondary DNS server only for specific domains.
|
89
125
|
Landrush adds a file into `/etc/resolver` that points lookups for hostnames ending in your `config.landrush.tld` domain
|
90
126
|
name to its DNS server. (Check out `man 5 resolver` on your Mac OS X host for more information on this file's syntax.)
|
91
127
|
|
128
|
+
|
129
|
+
<a name="linux"></a>
|
130
|
+
#### Linux
|
131
|
+
|
92
132
|
Though it's not automatically set up by landrush, similar behavior can be achieved on Linux hosts with `dnsmasq`. You
|
93
133
|
can integrate Landrush with dnsmasq on Ubuntu like so (tested on Ubuntu 13.10):
|
94
134
|
|
@@ -98,59 +138,132 @@ can integrate Landrush with dnsmasq on Ubuntu like so (tested on Ubuntu 13.10):
|
|
98
138
|
|
99
139
|
If you use a TLD other than the default `vagrant.test`, replace the TLD in the above instructions accordingly. Please be aware that anything ending in '.local' as TLD will not work because the `avahi` daemon reserves this TLD for its own uses.
|
100
140
|
|
101
|
-
|
141
|
+
<a name="windows"></a>
|
142
|
+
#### Windows
|
143
|
+
|
144
|
+
**Note**: Windows support is currently considered experimental. If you having
|
145
|
+
problems using Landrush on Windows please let us know.
|
146
|
+
|
147
|
+
On Windows a secondary DNS server can be configured via the properties of a
|
148
|
+
network adapter. This will be illustrated in the following using Windows 10 with
|
149
|
+
VirtualBox.
|
150
|
+
|
151
|
+
When running VirtualBox on Windows in combination with Landrush the Network
|
152
|
+
Connections (`Control Panel\Network and Internet\Network Connections`) looks
|
153
|
+
somewhat like this after a successful `vagrant up`:
|
154
|
+
|
155
|
+

|
156
|
+
|
157
|
+
There will be at least one VirtualBox network adapter. There might be multiple
|
158
|
+
depending on your configuration (number of networks configured) and how many VMs
|
159
|
+
you have running, but you just need to modify one.
|
160
|
+
|
161
|
+
In a first step you need to identify the VirtualBox network adapter used for the
|
162
|
+
private network of your VM. Landrush requires a private network adapter to work
|
163
|
+
and will create one in case you are not explicitly configuring one in your
|
164
|
+
`Vagrantfile`.
|
165
|
+
|
166
|
+
To quickly view the settings of each network adapter you can run the following
|
167
|
+
command in a shell:
|
168
|
+
|
169
|
+
netsh interface ip show config
|
170
|
+
|
171
|
+
The output should look something like that:
|
172
|
+
|
173
|
+
Configuration for interface "Ethernet0"
|
174
|
+
DHCP enabled: Yes
|
175
|
+
IP Address: 172.16.74.143
|
176
|
+
Subnet Prefix: 172.16.74.0/24 (mask 255.255.255.0)
|
177
|
+
Default Gateway: 172.16.74.2
|
178
|
+
Gateway Metric: 0
|
179
|
+
InterfaceMetric: 10
|
180
|
+
DNS servers configured through DHCP: 172.16.74.2
|
181
|
+
Register with which suffix: Primary only
|
182
|
+
WINS servers configured through DHCP: 172.16.74.2
|
183
|
+
|
184
|
+
Configuration for interface "VirtualBox Host-Only Network"
|
185
|
+
DHCP enabled: No
|
186
|
+
IP Address: 10.1.2.1
|
187
|
+
Subnet Prefix: 10.1.2.0/24 (mask 255.255.255.0)
|
188
|
+
InterfaceMetric: 10
|
189
|
+
Statically Configured DNS Servers: None
|
190
|
+
Register with which suffix: Primary only
|
191
|
+
Statically Configured WINS Servers: None
|
192
|
+
|
193
|
+
|
194
|
+
In our case we are interested in the `VirtualBox Host-Only Network` which
|
195
|
+
has in this example the private network IP 10.1.2.1. If you don't have a static
|
196
|
+
private network IP configured and you cannot determine the right adapter via
|
197
|
+
the `netsh` output, ssh into the VM (`vagrant ssh`) and run `ifconfig` to view
|
198
|
+
the network configuration of the VM.
|
199
|
+
|
200
|
+
Once you identified the right network adapter run the following as Administrator
|
201
|
+
(using the network adapter name of the adapter with the determined private
|
202
|
+
network IP):
|
203
|
+
|
204
|
+
netsh interface ipv4 add dnsserver "VirtualBox Host-Only Network" address=127.0.0.1 index=1
|
205
|
+
|
206
|
+
This should be enough for Windows 10. On other Windows versions, you might have to
|
207
|
+
also add your TLD to the DNS suffix list on the DNS Advanced TCP/IP Settings tab:
|
208
|
+
|
209
|
+

|
210
|
+
|
211
|
+
<a name="other-devices-phone"></a>
|
212
|
+
#### Other Devices (phone)
|
102
213
|
|
103
214
|
You might want to resolve Landrush's DNS-entries on *additional* computing devices, like a mobile phone.
|
104
215
|
|
105
216
|
Please refer to [/doc/proxy-mobile](/doc/proxy-mobile) for instructions.
|
106
217
|
|
218
|
+
<a name="additional-cli-commands"></a>
|
107
219
|
### Additional CLI commands
|
108
220
|
|
109
221
|
Check out `vagrant landrush` for additional commands to monitor the DNS server daemon.
|
110
222
|
|
111
|
-
## RoadMap
|
112
223
|
|
113
|
-
|
224
|
+
<a name="development"></a>
|
225
|
+
## Development
|
114
226
|
|
115
|
-
|
116
|
-
code commits available and document the release process.
|
227
|
+
* Install dependencies:
|
117
228
|
|
118
|
-
|
229
|
+
$ bundle install
|
119
230
|
|
120
|
-
|
121
|
-
* PR #144 - Cucumber Acceptance Tests
|
231
|
+
* Get a list of all available build tasks:
|
122
232
|
|
123
|
-
|
233
|
+
$ bundle exec rake -T
|
124
234
|
|
125
|
-
|
235
|
+
* Run the test suite:
|
126
236
|
|
127
|
-
|
128
|
-
* PR #154 Windows support for EventMachine/DNS
|
129
|
-
* We need your help, eventmachine has not proven to be very stable.
|
130
|
-
* Can we find an alternative to RubyDNS? Should we try something
|
131
|
-
in Go or another contained cross-platform binary?
|
132
|
-
* This would deal with the RubyDNS dependency tree and challenges
|
133
|
-
* PR #160 - Cygwin Fix
|
237
|
+
$ bundle exec rake test
|
134
238
|
|
135
|
-
|
239
|
+
* Run a single test file:
|
136
240
|
|
137
|
-
|
241
|
+
$ bundle exec rake test TEST=<path to test file>
|
138
242
|
|
139
|
-
|
243
|
+
* Run cucumber/aruba acceptance tests:
|
244
|
+
|
245
|
+
$ bundle exec cucumber
|
246
|
+
|
247
|
+
Note, that the acceptance tests currently only work out of the box on OS X.
|
248
|
+
On Linux one has to manually configure the host visibility for the TLD
|
249
|
+
_landrush-acceptance-test_. See for [Linux](#linux). On Windows the acceptance
|
250
|
+
tests won't work due to a current bug in [Aruba](https://github.com/cucumber/aruba/issues/387).
|
140
251
|
|
141
|
-
|
252
|
+
* Build the Landrush gem:
|
142
253
|
|
143
|
-
|
254
|
+
$ bundle exec rake install
|
144
255
|
|
145
|
-
|
256
|
+
* Clean all generated files:
|
146
257
|
|
147
|
-
|
258
|
+
$ bundle exec rake clean clobber
|
148
259
|
|
149
|
-
Run the vagrant binary with the
|
260
|
+
* Run the vagrant binary with the Landrush plugin loaded from your local
|
261
|
+
source code:
|
150
262
|
|
151
|
-
|
263
|
+
bundle exec vagrant landrush <command>
|
152
264
|
|
153
|
-
|
265
|
+
<a name="help-out"></a>
|
266
|
+
## Help Out!
|
154
267
|
|
155
268
|
This project could use your feedback and help! Please don't hesitate to open issues or submit pull requests. NO HESITATION IS ALLOWED. NONE WHATSOEVER. See [CONTRIBUTING.md](CONTRIBUTING.md) for more details.
|
156
269
|
|