vagrant-hostmanager 0.1.2 → 0.2.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.
data/README.md
CHANGED
@@ -21,17 +21,17 @@ Install the plugin following the typical Vagrant 1.1 procedure:
|
|
21
21
|
|
22
22
|
Usage
|
23
23
|
-----
|
24
|
-
|
25
|
-
|
26
|
-
machines with the same provider will have their `/etc/hosts` file updated
|
27
|
-
accordingly. Auto update may be disabled by setting the
|
28
|
-
`config.hostmanager.auto_update` attribute to false in the Vagrantfile.
|
29
|
-
|
30
|
-
To update the `/etc/hosts` file on each active machine manually, run the
|
31
|
-
following command:
|
24
|
+
To update the `/etc/hosts` file on each active machine, run the following
|
25
|
+
command:
|
32
26
|
|
33
27
|
$ vagrant hostmanager
|
34
28
|
|
29
|
+
The plugin may hook into the `vagrant up` and `vagrant destroy` commands
|
30
|
+
automatically. When a machine is created or destroyed, all active
|
31
|
+
machines with the same provider will have their `/etc/hosts` file updated
|
32
|
+
accordingly. Set the `hostmanager.enabled` attribute to `true` in the
|
33
|
+
Vagrantfile to activate this behavior.
|
34
|
+
|
35
35
|
A machine's IP address is defined by either the static IP for a private
|
36
36
|
network configuration or by the SSH host configuration. To disable
|
37
37
|
using the private network IP address, set `config.hostmanger.ignore_private_ip`
|
@@ -47,7 +47,7 @@ Example configuration:
|
|
47
47
|
|
48
48
|
```ruby
|
49
49
|
Vagrant.configure("2") do |config|
|
50
|
-
config.hostmanager.
|
50
|
+
config.hostmanager.enabled = true
|
51
51
|
config.hostmanager.ignore_private_ip = false
|
52
52
|
config.vm.define "example-box" do |node|
|
53
53
|
node.vm.hostname = "example-box-hostname"
|
@@ -17,7 +17,7 @@ module VagrantPlugins
|
|
17
17
|
return @app.call(env) if @machine.id
|
18
18
|
|
19
19
|
# check config to see if the hosts file should be update automatically
|
20
|
-
return @app.call(env)
|
20
|
+
return @app.call(env) unless @machine.config.hostmanager.enabled?
|
21
21
|
@logger.info 'Updating /etc/hosts file automatically'
|
22
22
|
|
23
23
|
# continue the action stack so the machine will be created
|
@@ -1,31 +1,33 @@
|
|
1
1
|
module VagrantPlugins
|
2
2
|
module HostManager
|
3
3
|
class Config < Vagrant.plugin('2', :config)
|
4
|
-
attr_accessor :
|
4
|
+
attr_accessor :enabled
|
5
5
|
attr_accessor :ignore_private_ip
|
6
6
|
attr_accessor :aliases
|
7
7
|
|
8
|
+
alias_method :enabled?, :enabled
|
9
|
+
|
8
10
|
def initialize
|
9
|
-
@
|
11
|
+
@enabled = false
|
10
12
|
@ignore_private_ip = UNSET_VALUE
|
11
|
-
@aliases = Array.new
|
13
|
+
@aliases = Array.new
|
12
14
|
end
|
13
15
|
|
14
16
|
def finalize!
|
15
|
-
@auto_update = true if @auto_update == UNSET_VALUE
|
16
17
|
@ignore_private_ip = false if @ignore_private_ip == UNSET_VALUE
|
17
18
|
end
|
18
19
|
|
19
20
|
def validate(machine)
|
20
21
|
errors = Array.new
|
21
22
|
|
22
|
-
# check if
|
23
|
-
if ![TrueClass, FalseClass].include?(
|
24
|
-
errors << "A value for hostmanager.
|
23
|
+
# check if enabled option is either true or false
|
24
|
+
if ![TrueClass, FalseClass].include?(enabled.class)
|
25
|
+
errors << "A value for hostmanager.enabled can be true or false."
|
25
26
|
end
|
26
27
|
|
27
28
|
# check if ignore_private_ip option is either true or false
|
28
|
-
if ![TrueClass, FalseClass].include?(ignore_private_ip.class)
|
29
|
+
if ![TrueClass, FalseClass].include?(ignore_private_ip.class) &&
|
30
|
+
@ignore_private_ip != UNSET_VALUE
|
29
31
|
errors << "A value for hostmanager.ignore_private_ip can be true or false."
|
30
32
|
end
|
31
33
|
|
@@ -33,7 +35,7 @@ module VagrantPlugins
|
|
33
35
|
if !machine.config.hostmanager.aliases.kind_of?(Array)
|
34
36
|
errors << "A value for hostmanager.aliases must be an Array."
|
35
37
|
end
|
36
|
-
|
38
|
+
|
37
39
|
{ "HostManager configuration" => errors }
|
38
40
|
end
|
39
41
|
end
|
data/test/Vagrantfile
CHANGED
@@ -7,7 +7,7 @@ Vagrant.configure('2') do |config|
|
|
7
7
|
config.vm.box = 'precise64-chef11.2'
|
8
8
|
config.vm.box_url = 'https://opscode-vm.s3.amazonaws.com/vagrant/opscode_ubuntu-12.04_chef-11.2.0.box'
|
9
9
|
|
10
|
-
config.hostmanager.
|
10
|
+
config.hostmanager.enabled = true
|
11
11
|
|
12
12
|
config.vm.define :server1 do |server|
|
13
13
|
server.vm.hostname = 'fry'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-hostmanager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-04-
|
12
|
+
date: 2013-04-27 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: A Vagrant plugin that manages the /etc/hosts file within a multi-machine
|
15
15
|
environment
|