vagrant-hiera 0.3.4 → 0.3.5
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/.gitignore +3 -0
- data/Gemfile +3 -0
- data/README.md +12 -1
- data/lib/vagrant-hiera/config.rb +31 -0
- data/lib/vagrant-hiera/middleware/setup.rb +20 -12
- data/lib/vagrant-hiera/version.rb +1 -1
- metadata +3 -2
data/.gitignore
ADDED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -33,10 +33,19 @@ And then...
|
|
33
33
|
|
34
34
|
`vagrant up`
|
35
35
|
|
36
|
-
**
|
36
|
+
**Notes**:
|
37
|
+
You will need to add/checkout [hiera-puppet]("https://github.com/puppetlabs/hiera-puppet" "Hiera Puppet") to your module path. See the following links for more information:
|
37
38
|
- https://github.com/puppetlabs/hiera-puppet#installation
|
38
39
|
- https://groups.google.com/d/msg/puppet-users/IlPq14Rsnm0/UhbbRUsqqLgJ
|
39
40
|
|
41
|
+
I've only tested this plugin on puppet 3. Thus, it will download and install puppet v3 (which as of now is a pre-release version). Although it is not tested, if you would like to configure the plugin to use a different version of puppet, hiera, etc., you can do so by adding the following config to your Vagrantfile.
|
42
|
+
|
43
|
+
```
|
44
|
+
config.hiera.(puppet_apt_source|puppet_version|hiera_puppet_version|hiera_version|apt_opts) = ' ... '
|
45
|
+
```
|
46
|
+
|
47
|
+
Thanks to [haf]('http://github.com/haf') for the contribution.
|
48
|
+
|
40
49
|
## Contributing
|
41
50
|
|
42
51
|
1. Fork it
|
@@ -44,3 +53,5 @@ And then...
|
|
44
53
|
3. Commit your changes (`git commit -am 'Added some feature'`)
|
45
54
|
4. Push to the branch (`git push origin my-new-feature`)
|
46
55
|
5. Create new Pull Request
|
56
|
+
|
57
|
+
|
data/lib/vagrant-hiera/config.rb
CHANGED
@@ -7,6 +7,12 @@ module VagrantHiera
|
|
7
7
|
attr_accessor :data_path
|
8
8
|
attr_accessor :guest_data_path
|
9
9
|
|
10
|
+
attr_accessor :puppet_apt_source
|
11
|
+
attr_accessor :puppet_version
|
12
|
+
attr_accessor :hiera_puppet_version
|
13
|
+
attr_accessor :hiera_version
|
14
|
+
attr_accessor :apt_opts
|
15
|
+
|
10
16
|
def guest_config_path
|
11
17
|
@guest_config_path.nil? ? (@guest_config_path = '/tmp/vagrant-hiera/config') : @guest_config_path
|
12
18
|
end
|
@@ -15,6 +21,26 @@ module VagrantHiera
|
|
15
21
|
@guest_data_path.nil? ? (@guest_data_path = '/tmp/vagrant-hiera/data') : @guest_data_path
|
16
22
|
end
|
17
23
|
|
24
|
+
def puppet_apt_source
|
25
|
+
@puppet_apt_source.nil? ? (@puppet_apt_source = 'deb http://apt.puppetlabs.com/ lucid devel main') : @puppet_apt_source
|
26
|
+
end
|
27
|
+
|
28
|
+
def puppet_version
|
29
|
+
@puppet_version.nil? ? (@puppet_version = '3.0.0-0.1rc5puppetlabs1') : @puppet_version
|
30
|
+
end
|
31
|
+
|
32
|
+
def hiera_puppet_version
|
33
|
+
@hiera_puppet_version.nil? ? (@hiera_puppet_version = '1.0.0-0.1rc3') : @hiera_puppet_version
|
34
|
+
end
|
35
|
+
|
36
|
+
def hiera_version
|
37
|
+
@hiera_version.nil? ? (@hiera_version = '1.0.0-0.1rc4') : @hiera_version
|
38
|
+
end
|
39
|
+
|
40
|
+
def apt_opts
|
41
|
+
@apt_opts.nil? ? (@apt_opts = '-y --force-yes -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"') : @apt_opts
|
42
|
+
end
|
43
|
+
|
18
44
|
def config_path
|
19
45
|
File.expand_path(@config_path) rescue nil
|
20
46
|
end
|
@@ -31,6 +57,11 @@ module VagrantHiera
|
|
31
57
|
errors.add("Config path can not be empty.") if config_path.nil?
|
32
58
|
errors.add("Config file can not be empty.") if config_file.nil?
|
33
59
|
errors.add("Data path can not be empty.") if data_path.nil?
|
60
|
+
errors.add("Puppet apt source can not be empty.") if puppet_apt_source.nil?
|
61
|
+
errors.add("Puppet version path can not be empty.") if puppet_version.nil?
|
62
|
+
errors.add("Hiera puppet version path can not be empty.") if hiera_puppet_version.nil?
|
63
|
+
errors.add("Hiera version path can not be empty.") if hiera_version.nil?
|
64
|
+
errors.add("Apt opts path can not be empty.") if apt_opts.nil?
|
34
65
|
config = File.join("#{config_path}", "#{config_file}")
|
35
66
|
errors.add("Config file not found at '#{config}'.") unless File.exists?(config)
|
36
67
|
errors.add("Data directory not found at '#{data_path}'.") unless File.exists?("#{data_path}")
|
@@ -5,11 +5,17 @@ module VagrantHiera
|
|
5
5
|
def initialize(app, env)
|
6
6
|
@app = app
|
7
7
|
@env = env
|
8
|
-
|
9
|
-
@
|
10
|
-
@
|
11
|
-
@
|
12
|
-
@
|
8
|
+
|
9
|
+
@guest_config_path = @env[:vm].config.hiera.guest_config_path
|
10
|
+
@guest_data_path = @env[:vm].config.hiera.guest_data_path
|
11
|
+
@config_path = @env[:vm].config.hiera.config_path
|
12
|
+
@data_path = @env[:vm].config.hiera.data_path
|
13
|
+
@config_file = @env[:vm].config.hiera.config_file
|
14
|
+
@puppet_apt_source = @env[:vm].config.hiera.puppet_apt_source
|
15
|
+
@puppet_version = @env[:vm].config.hiera.puppet_version
|
16
|
+
@hiera_puppet_version = @env[:vm].config.hiera.hiera_puppet_version
|
17
|
+
@hiera_version = @env[:vm].config.hiera.hiera_version
|
18
|
+
@apt_opts = @env[:vm].config.hiera.apt_opts
|
13
19
|
end
|
14
20
|
|
15
21
|
def call(env)
|
@@ -18,7 +24,7 @@ module VagrantHiera
|
|
18
24
|
add_apt_repo unless apt_repo_set?
|
19
25
|
install_puppet unless puppet_installed?
|
20
26
|
install_hiera unless hiera_installed?
|
21
|
-
|
27
|
+
install_hiera_puppet unless hiera_puppet_installed?
|
22
28
|
create_shared_folders
|
23
29
|
create_symlink_to_hiera_config
|
24
30
|
end
|
@@ -37,14 +43,16 @@ module VagrantHiera
|
|
37
43
|
end
|
38
44
|
|
39
45
|
def apt_repo_set?
|
40
|
-
setup = ( @env[:vm].channel.execute("grep '#{@
|
46
|
+
setup = ( @env[:vm].channel.execute("grep '#{@puppet_apt_source}' /etc/apt/sources.list", :error_check => false) == 0 )
|
41
47
|
@env[:ui].success I18n.t('vagrant.plugins.hiera.middleware.setup.apt_repo_set') if setup
|
42
48
|
setup
|
43
49
|
end
|
44
50
|
|
45
51
|
def add_apt_repo
|
46
52
|
@env[:ui].warn I18n.t('vagrant.plugins.hiera.middleware.setup.add_apt_repo')
|
47
|
-
@env[:vm].channel.sudo("
|
53
|
+
@env[:vm].channel.sudo("wget http://apt.puppetlabs.com/puppetlabs-release-stable.deb")
|
54
|
+
@env[:vm].channel.sudo("dpkg -i puppetlabs-release-stable.deb")
|
55
|
+
@env[:vm].channel.sudo("echo '#{@puppet_apt_source}' >> /etc/apt/sources.list.d/puppet.list")
|
48
56
|
@env[:vm].channel.sudo("apt-get update")
|
49
57
|
end
|
50
58
|
|
@@ -76,17 +84,17 @@ module VagrantHiera
|
|
76
84
|
data = {}
|
77
85
|
data[:owner] ||= @env[:vm].config.ssh.username
|
78
86
|
data[:group] ||= @env[:vm].config.ssh.username
|
79
|
-
@env[:vm].guest.mount_shared_folder('vagrant-hiera-config', @
|
80
|
-
@env[:vm].guest.mount_shared_folder('vagrant-hiera-data', @
|
87
|
+
@env[:vm].guest.mount_shared_folder('vagrant-hiera-config', @guest_config_path, data)
|
88
|
+
@env[:vm].guest.mount_shared_folder('vagrant-hiera-data', @guest_data_path, data)
|
81
89
|
end
|
82
90
|
|
83
91
|
def create_symlink_to_hiera_config
|
84
92
|
@env[:ui].info I18n.t('vagrant.plugins.hiera.middleware.setup.installing_hiera_config')
|
85
93
|
@env[:vm].channel.sudo("mkdir -p /etc/puppet")
|
86
94
|
# This is where I think this file will end up once the official puppet v3 release is out
|
87
|
-
@env[:vm].channel.sudo("ln -fs #{@
|
95
|
+
@env[:vm].channel.sudo("ln -fs #{@guest_config_path}/#{@config_file} /etc/hiera.yaml")
|
88
96
|
# But this is where it looks for it now
|
89
|
-
@env[:vm].channel.sudo("ln -fs #{@
|
97
|
+
@env[:vm].channel.sudo("ln -fs #{@guest_config_path}/#{@config_file} /etc/puppet/hiera.yaml")
|
90
98
|
end
|
91
99
|
end
|
92
100
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-hiera
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.5
|
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: 2012-
|
12
|
+
date: 2012-09-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: vagrant
|
@@ -34,6 +34,7 @@ executables: []
|
|
34
34
|
extensions: []
|
35
35
|
extra_rdoc_files: []
|
36
36
|
files:
|
37
|
+
- .gitignore
|
37
38
|
- .rvmrc
|
38
39
|
- Gemfile
|
39
40
|
- LICENSE
|