salthiera 0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +8 -0
- data/.travis.yml +10 -0
- data/Gemfile +9 -0
- data/Gemfile.lock +32 -0
- data/LICENSE.txt +21 -0
- data/README.md +43 -0
- data/Rakefile +1 -0
- data/bin/salthiera +7 -0
- data/environments/defaults.yaml +2 -0
- data/environments/dev/files/myuser.id_rsa +27 -0
- data/environments/dev/files/myuser.id_rsa.pub +1 -0
- data/environments/salthiera.yaml +8 -0
- data/lib/salt_hiera/CLI.rb +45 -0
- data/lib/salt_hiera/configuration.rb +15 -0
- data/lib/salt_hiera/logger.rb +56 -0
- data/lib/salt_hiera/plugins/eyaml.rb +64 -0
- data/lib/salt_hiera/plugins/files.rb +15 -0
- data/lib/salt_hiera/plugins/no_plugin.rb +14 -0
- data/lib/salt_hiera/plugins/yaml.rb +15 -0
- data/lib/salt_hiera/salt_hiera.rb +86 -0
- data/salthiera.gemspec +22 -0
- data/tools/regem.sh +8 -0
- metadata +92 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
data.tar.gz: b3bd8ac1830135bc9f921f621e22a91f8513d1ad
|
4
|
+
metadata.gz: bda943843e60bf6ed7c5fed8cb05fbdeb986db6e
|
5
|
+
SHA512:
|
6
|
+
data.tar.gz: 20be867bae02f46069e12896694140a7b0b8535f733dbd5196b9acb29ca5c25363c82d2da6c90c576125b28de37f49429b68f77476ef09382a112e95623a122f
|
7
|
+
metadata.gz: c50cf042528029489d54b98c966c580dbac20f4d5cd63483b90f8ae6327eb5e42d63fbdf28d313f9009b9eb6c45bc6a2aaab2e212edfcebc55f4bc91a115918a
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
GEM
|
2
|
+
remote: https://rubygems.org/
|
3
|
+
specs:
|
4
|
+
aruba (0.5.4)
|
5
|
+
childprocess (>= 0.3.6)
|
6
|
+
cucumber (>= 1.1.1)
|
7
|
+
rspec-expectations (>= 2.7.0)
|
8
|
+
builder (3.2.2)
|
9
|
+
childprocess (0.4.0)
|
10
|
+
ffi (~> 1.0, >= 1.0.11)
|
11
|
+
cucumber (1.3.10)
|
12
|
+
builder (>= 2.1.2)
|
13
|
+
diff-lcs (>= 1.1.3)
|
14
|
+
gherkin (~> 2.12)
|
15
|
+
multi_json (>= 1.7.5, < 2.0)
|
16
|
+
multi_test (>= 0.0.2)
|
17
|
+
diff-lcs (1.2.5)
|
18
|
+
ffi (1.9.3)
|
19
|
+
gherkin (2.12.2)
|
20
|
+
multi_json (~> 1.3)
|
21
|
+
multi_json (1.8.4)
|
22
|
+
multi_test (0.0.3)
|
23
|
+
rake (10.1.1)
|
24
|
+
rspec-expectations (2.14.4)
|
25
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
26
|
+
|
27
|
+
PLATFORMS
|
28
|
+
ruby
|
29
|
+
|
30
|
+
DEPENDENCIES
|
31
|
+
aruba
|
32
|
+
rake
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
|
2
|
+
The MIT License (MIT)
|
3
|
+
|
4
|
+
Copyright (c) 2013 GTMTech Ltd
|
5
|
+
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
7
|
+
this software and associated documentation files (the "Software"), to deal in
|
8
|
+
the Software without restriction, including without limitation the rights to
|
9
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
10
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
11
|
+
subject to the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be included in all
|
14
|
+
copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
18
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
19
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
20
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
21
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
SaltHiera
|
2
|
+
=========
|
3
|
+
|
4
|
+
[![Build Status](https://travis-ci.org/Gtmtechltd/salthiera.png?branch=master)](https://travis-ci.org/gtmtechltd/salthiera)
|
5
|
+
|
6
|
+
salthiera is a hiera-like tool which is designed to work with SaltStack Pillars via the ext_pillar option.
|
7
|
+
|
8
|
+
Background
|
9
|
+
----------
|
10
|
+
|
11
|
+
Hiera is a great way of defining conventions by which environmental data can be accessed. Unfortunately it is limited to specific lookup dictionary "keys", which you specify one at a time. This is incompatible with salt which expects an external pillar to supply a range of keys/values which it merges into its existing pillar information.
|
12
|
+
|
13
|
+
Therefore there was a need to create something which gives the convention advantages of the Hiera system which integrates well with SaltStack.
|
14
|
+
|
15
|
+
Initially this project is written in Ruby as a gem, however I intend to port to python to align with SaltStack properly when I get the time.
|
16
|
+
|
17
|
+
Setup
|
18
|
+
-----
|
19
|
+
|
20
|
+
### Installing salthiera
|
21
|
+
|
22
|
+
$ gem install salthiera
|
23
|
+
|
24
|
+
### Define a salthiera.yaml configuration file
|
25
|
+
|
26
|
+
$ chown -R puppet:puppet /etc/puppet/secure/keys
|
27
|
+
$ chmod -R 0500 /etc/puppet/secure/keys
|
28
|
+
$ chmod 0400 /etc/puppet/secure/keys/*.pem
|
29
|
+
$ ls -lha /etc/puppet/secure/keys
|
30
|
+
-r-------- 1 puppet puppet 1.7K Sep 24 16:24 private_key.pkcs7.pem
|
31
|
+
-r-------- 1 puppet puppet 1.1K Sep 24 16:24 public_key.pkcs7.pem
|
32
|
+
|
33
|
+
### Use it to lookup data!
|
34
|
+
|
35
|
+
$ salthiera -c /etc/salthiera.yaml key1=value1 key2=value
|
36
|
+
|
37
|
+
SaltHiera supports keys, values
|
38
|
+
|
39
|
+
|
40
|
+
Authors
|
41
|
+
-------
|
42
|
+
|
43
|
+
- [Geoff Meakin](http://github.com/gtmtech) - Author
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/bin/salthiera
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
MIIEpAIBAAKCAQEA49eiqbbJyECQvy3/5jO7YZ+qaHj0uJj35f09ahQZ7mHfUA6Z
|
3
|
+
cf759uJFTh+cBT4bCcKCAy5AUGmmLb0jLb+pU5c5Fn6mlm+bYipjuTNkaVbbwBRI
|
4
|
+
3vIrQO7RO/eaYRhgG3CrO9Yl7eTkmFU3P1rqfKcSnTGW4AlVrDuEOqf0tXTsVgZ0
|
5
|
+
cSdXfi80bEkz+6oMAn+DyWO1LjvGvdsW05o0SMDM8NyV/7GPyp0a3A3gwiX/WSMI
|
6
|
+
xf7TuxSGc/JMTYzSUvdzT8RiFAYJ/0m3CDm+DRXAEpmG6RqjGrrnTokQepcclMf8
|
7
|
+
NV917qKj61hEv4Si043zEMQbAzotCBQAgjL45QIDAQABAoIBAQDKjOsI4X0lT3De
|
8
|
+
5O/4IMlWknEWC2HTsfnANo+gfFpJOC0kqLX1R+3Ec4eVWjiD2KCE3qxiU33Nfv7C
|
9
|
+
7sAVbawEqg2QV+uVFYcXkAOzo2KC2zrk2aOmv7eANE9Cdm6CHv9hpZo0yb5SbQhj
|
10
|
+
/G3vHs4THxxHLsyoQuQtB4QX+TRtEuVb7jWLfhLRO/rR44D3oak1MewLI4FSJHIH
|
11
|
+
3jK/oxMfntoM1469ZFP4O7DVEAT3GiqZ1aFJHcYGZUXiOlZIQOOykkmnzOlQeI4d
|
12
|
+
gQSlHSTC5LT9mpHY9NctkGCYJZtevAI6N0ZXcPNnATNnvLTarmxeH9yflQKJj2nF
|
13
|
+
HTwqfimJAoGBAPmLRMB55SFK+PO8zw5wIqsVxdAZg+tFWEFAo/T25elz18GMZD+v
|
14
|
+
FariMVh61b6TCN/Tf2baCu4n/RxJHk4YEF2q09zr4KtQpV1rxmtB25RrEsdQCQEp
|
15
|
+
XKHHBF8W0e4ufn6eD2WcIYHDmON03YUSuD2tA5ns7jKyZm5SQ77ksaIbAoGBAOm8
|
16
|
+
ouvbrxVhXMdOxhZ8hC9W9QzD4tzJo9o4d3l4JS2eIHHej9r7QZw2Rjr2wBCBtMbs
|
17
|
+
Kp5MPKoNr4OnhLuYGURaJYURoeNCTTuUzvoFQ4AvQv3zyZWqezU1fBDJtSroavkR
|
18
|
+
Gr8dzTgShGlPJzedYzwQlBc3Nuhdrxx3RAN374D/AoGAce0DFlyQHwL7ZUttvEm1
|
19
|
+
iiYGiVscvuyJvkCkmdGeZVZdyh8uJWTpn3pkzOBHdRnrk0QbhflFxDS9eYxoKX8S
|
20
|
+
+bBjyRhnGc9Xr67kh1MpzDiV+iiv87fOco1JkZ/5d6QCXAwNO3ZsVbHWuwE/oOFK
|
21
|
+
+91hJ4TjuoF4AiXMh/ognsECgYEAjeguDf5hjRyAhK0JzOsqIcesnWRsXtm5Nirk
|
22
|
+
NoZAJDMFxbx3IF89VUcKWpAmyZ7GD6OguFzW0/PdJJRXHMHaTUphzymGXQCK/Wp6
|
23
|
+
QwdhFPkctiwFrm1DwmlHerXL3VIgaDj/QRsp1io/4+Pfjn9qmTQDhRjLqEYAo8qx
|
24
|
+
K13sticCgYA8b//RGcPISHLRfyrHWY4y7fhaHgyBO+tIqLHQWXnMTQCFhf6FW0g+
|
25
|
+
z9d9isfie04PgY7471EJpkzSPg4QWAk8crWfPA5/wSVUAM+uGCHC0GAwnzPljNDY
|
26
|
+
T2U8xToB7Ev7DDAFDc4LMxR6ReYKytALQjX1gNfZecNhFP3FcjW9+g==
|
27
|
+
-----END RSA PRIVATE KEY-----
|
@@ -0,0 +1 @@
|
|
1
|
+
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDj16KptsnIQJC/Lf/mM7thn6poePS4mPfl/T1qFBnuYd9QDplx/vn24kVOH5wFPhsJwoIDLkBQaaYtvSMtv6lTlzkWfqaWb5tiKmO5M2RpVtvAFEje8itA7tE795phGGAbcKs71iXt5OSYVTc/Wup8pxKdMZbgCVWsO4Q6p/S1dOxWBnRxJ1d+LzRsSTP7qgwCf4PJY7UuO8a92xbTmjRIwMzw3JX/sY/KnRrcDeDCJf9ZIwjF/tO7FIZz8kxNjNJS93NPxGIUBgn/SbcIOb4NFcASmYbpGqMauudOiRB6lxyUx/w1X3XuoqPrWES/hKLTjfMQxBsDOi0IFACCMvjl geoffmeakin@dtp478
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'salt_hiera/salt_hiera'
|
2
|
+
|
3
|
+
module SaltHiera
|
4
|
+
class CLI
|
5
|
+
|
6
|
+
def self.help
|
7
|
+
puts "Usage: salthiera [ -c configfile ] key1=value1 key2=value2 key3=value3 ..."
|
8
|
+
puts " -c : specify a configfile to use"
|
9
|
+
exit 0
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.parse
|
13
|
+
|
14
|
+
params = {}
|
15
|
+
config_file = "/etc/salthiera.yaml"
|
16
|
+
|
17
|
+
while arg = ARGV.shift do
|
18
|
+
case arg
|
19
|
+
when "--help"
|
20
|
+
self.help
|
21
|
+
when "-c"
|
22
|
+
config_file = ARGV.shift
|
23
|
+
else
|
24
|
+
key, value = arg.split("=", 2)
|
25
|
+
if value
|
26
|
+
params[key] = value
|
27
|
+
else
|
28
|
+
self.help
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
@@opts = { :config => config_file, :params => params }
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.execute
|
38
|
+
|
39
|
+
salthiera = SaltHiera.new :config_file => @@opts[:config], :params => @@opts[:params]
|
40
|
+
puts salthiera.to_yaml
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# Simple logger - not designed to be particularly good, just basic
|
2
|
+
|
3
|
+
module SaltHiera
|
4
|
+
class Logger
|
5
|
+
@@loglevels = { :critical => 1,
|
6
|
+
:error => 2,
|
7
|
+
:warn => 3,
|
8
|
+
:info => 4,
|
9
|
+
:debug => 5,
|
10
|
+
:trace => 6 }
|
11
|
+
|
12
|
+
def self.logfile filename
|
13
|
+
@@logfile ||= filename
|
14
|
+
@@loglevel ||= :info
|
15
|
+
@@log ||= File.open(filename, "a") unless filename.nil?
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.loglevel level
|
19
|
+
@@loglevel = level if @@loglevels[level]
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.critical msg
|
23
|
+
self.raw :critical, msg
|
24
|
+
raise msg
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.error msg
|
28
|
+
self.raw :error, msg
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.warn msg
|
32
|
+
self.raw :warn, msg
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.info msg
|
36
|
+
self.raw :info, msg
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.debug msg
|
40
|
+
self.raw :debug, msg
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.trace msg
|
44
|
+
self.raw :trace, msg
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.raw level, msg
|
48
|
+
self.logfile "/tmp/salthiera.log"
|
49
|
+
# if @@loglevels[level] && @@loglevels[level] > @@loglevels[@@loglevel] then
|
50
|
+
@@log.write "[#{level.to_s}]: #{msg}\n"
|
51
|
+
@@log.flush
|
52
|
+
# end
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'openssl'
|
2
|
+
require 'base64'
|
3
|
+
require 'salt_hiera/configuration'
|
4
|
+
|
5
|
+
module SaltHiera
|
6
|
+
module Plugins
|
7
|
+
class Eyaml
|
8
|
+
|
9
|
+
def self.process_file file
|
10
|
+
|
11
|
+
contents = File.read file
|
12
|
+
dict = YAML.load contents
|
13
|
+
dict ||= {}
|
14
|
+
dict = self.recurse dict
|
15
|
+
dict
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.recurse obj
|
20
|
+
if obj.is_a? Array
|
21
|
+
obj.each.with_index do |element, index|
|
22
|
+
obj[index] = self.recurse element
|
23
|
+
end
|
24
|
+
elsif obj.is_a? Hash
|
25
|
+
obj.each do |k, v|
|
26
|
+
obj[k] = self.recurse v
|
27
|
+
end
|
28
|
+
elsif obj.is_a? String
|
29
|
+
obj = obj.gsub(/ENC\[PKCS7,(.*?)\]/) {|x| puts "*******" + $1
|
30
|
+
self.decrypt($1) }
|
31
|
+
else
|
32
|
+
obj
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.decrypt cipherbinary
|
37
|
+
|
38
|
+
public_key = Configuration.get "eyaml_public_key"
|
39
|
+
private_key = Configuration.get "eyaml_private_key"
|
40
|
+
|
41
|
+
raise StandardError, "pkcs7_public_key is not defined" unless public_key
|
42
|
+
raise StandardError, "pkcs7_private_key is not defined" unless private_key
|
43
|
+
|
44
|
+
private_key_pem = File.read private_key
|
45
|
+
|
46
|
+
private_key_rsa = OpenSSL::PKey::RSA.new( private_key_pem )
|
47
|
+
|
48
|
+
public_key_pem = File.read public_key
|
49
|
+
|
50
|
+
public_key_x509 = OpenSSL::X509::Certificate.new( public_key_pem )
|
51
|
+
|
52
|
+
ciphertext = Base64.decode64(cipherbinary)
|
53
|
+
pkcs7 = OpenSSL::PKCS7.new( ciphertext )
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
pkcs7.decrypt(private_key_rsa, public_key_x509)
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'salt_hiera/logger'
|
3
|
+
require 'salt_hiera/configuration'
|
4
|
+
require 'salt_hiera/plugins/no_plugin'
|
5
|
+
|
6
|
+
module SaltHiera
|
7
|
+
class SaltHiera
|
8
|
+
|
9
|
+
VERSION="0.1"
|
10
|
+
|
11
|
+
def initialize attributes
|
12
|
+
raise "Config error (#{params})" unless attributes[:config_file]
|
13
|
+
raise "Config file (#{attributes[:config_file]}) doesn't exist" unless File.file? attributes[:config_file]
|
14
|
+
|
15
|
+
file_contents = File.read(attributes[:config_file])
|
16
|
+
begin
|
17
|
+
@config = YAML::load(file_contents)
|
18
|
+
rescue
|
19
|
+
raise "Problem reading from config file #{attributes[:config_file]} (invalid YAML/permissions?)"
|
20
|
+
end
|
21
|
+
|
22
|
+
@config.each do |k, v|
|
23
|
+
Configuration.set k, v
|
24
|
+
end
|
25
|
+
|
26
|
+
Logger.logfile(@config[:logfile])
|
27
|
+
Logger.loglevel(@config[:loglevel])
|
28
|
+
@params = attributes[:params]
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
def find_plugin plugin_name
|
33
|
+
begin
|
34
|
+
require "salt_hiera/plugins/#{plugin_name.downcase}"
|
35
|
+
rescue
|
36
|
+
Logger.critical "No plugin named #{plugin_name} exists"
|
37
|
+
return Module.const_get("SaltHiera").const_get("Plugins").const_get("NoPlugin")
|
38
|
+
end
|
39
|
+
plugin_class = plugin_name.downcase.split("_").collect {|word| word.capitalize }.join("_")
|
40
|
+
plugin = Module.const_get("SaltHiera").const_get("Plugins").const_get(plugin_class)
|
41
|
+
raise "Could not find plugin #{plugin_name}" if plugin.nil?
|
42
|
+
plugin
|
43
|
+
end
|
44
|
+
|
45
|
+
def to_yaml
|
46
|
+
|
47
|
+
Logger.debug @config
|
48
|
+
|
49
|
+
if @config["basedir"]
|
50
|
+
Logger.debug "Setting basedir to \"#{@config['basedir']}\""
|
51
|
+
Dir.chdir @config["basedir"]
|
52
|
+
end
|
53
|
+
|
54
|
+
results = {}
|
55
|
+
|
56
|
+
@config["hierarchy"].reverse.each do |hierarchy|
|
57
|
+
Logger.debug "Analysing hierarchy element: #{hierarchy}"
|
58
|
+
hierarchy_type, hierarchy_glob = hierarchy.split(':', 2)
|
59
|
+
Logger.debug " type: #{hierarchy_type}"
|
60
|
+
Logger.debug " glob: #{hierarchy_glob}"
|
61
|
+
hierarchy_glob.gsub!(/\%\{(.*?)\}/) {|exp| @params[exp[2..-2]] || "!NOT_DEFINED!" } # Detokenize
|
62
|
+
Logger.debug " reglob: #{hierarchy_glob}"
|
63
|
+
next if hierarchy_glob.include? "!NOT_DEFINED!"
|
64
|
+
files = Dir.glob(hierarchy_glob).collect {|x| x if File.file?(x) }.compact
|
65
|
+
files.each do |file|
|
66
|
+
Logger.debug " file: #{file} (#{hierarchy_type})"
|
67
|
+
plugin = find_plugin hierarchy_type
|
68
|
+
dict = plugin.process_file file
|
69
|
+
debug_dict "", dict
|
70
|
+
results.merge! dict
|
71
|
+
end
|
72
|
+
end if @config["hierarchy"]
|
73
|
+
results.to_yaml
|
74
|
+
end
|
75
|
+
|
76
|
+
def debug_dict prefix, dict
|
77
|
+
dict.each do |k, v|
|
78
|
+
Logger.debug " -------> Found #{prefix}#{k}"
|
79
|
+
if v.class == Hash
|
80
|
+
debug_dict "#{prefix}#{k}.", v
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
86
|
+
end
|
data/salthiera.gemspec
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'salt_hiera/salt_hiera'
|
5
|
+
|
6
|
+
Gem::Specification.new do |gem|
|
7
|
+
gem.name = "salthiera"
|
8
|
+
gem.version = SaltHiera::SaltHiera::VERSION
|
9
|
+
gem.description = "Hiera like tool for use as an external pillar with SaltStack"
|
10
|
+
gem.summary = "Hiera like tool for use as an external pillar with SaltStack"
|
11
|
+
gem.author = "Geoff Meakin"
|
12
|
+
gem.license = "MIT"
|
13
|
+
|
14
|
+
gem.homepage = "http://github.com/gtmtechltd/salthiera"
|
15
|
+
gem.files = `git ls-files`.split($/).reject { |file| file =~ /^features.*$/ }
|
16
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
17
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
|
+
gem.require_paths = ["lib"]
|
19
|
+
|
20
|
+
gem.add_dependency('trollop', '>=2.0')
|
21
|
+
gem.add_dependency('highline', '>=1.6.19')
|
22
|
+
end
|
data/tools/regem.sh
ADDED
metadata
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: salthiera
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: "0.1"
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Geoff Meakin
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2014-01-28 00:00:00 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: trollop
|
16
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: "2.0"
|
21
|
+
prerelease: false
|
22
|
+
requirement: *id001
|
23
|
+
type: :runtime
|
24
|
+
- !ruby/object:Gem::Dependency
|
25
|
+
name: highline
|
26
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
27
|
+
requirements:
|
28
|
+
- - ">="
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: 1.6.19
|
31
|
+
prerelease: false
|
32
|
+
requirement: *id002
|
33
|
+
type: :runtime
|
34
|
+
description: Hiera like tool for use as an external pillar with SaltStack
|
35
|
+
email:
|
36
|
+
executables:
|
37
|
+
- salthiera
|
38
|
+
extensions: []
|
39
|
+
|
40
|
+
extra_rdoc_files: []
|
41
|
+
|
42
|
+
files:
|
43
|
+
- .gitignore
|
44
|
+
- .travis.yml
|
45
|
+
- Gemfile
|
46
|
+
- Gemfile.lock
|
47
|
+
- LICENSE.txt
|
48
|
+
- README.md
|
49
|
+
- Rakefile
|
50
|
+
- bin/salthiera
|
51
|
+
- environments/defaults.yaml
|
52
|
+
- environments/dev/files/myuser.id_rsa
|
53
|
+
- environments/dev/files/myuser.id_rsa.pub
|
54
|
+
- environments/salthiera.yaml
|
55
|
+
- lib/salt_hiera/CLI.rb
|
56
|
+
- lib/salt_hiera/configuration.rb
|
57
|
+
- lib/salt_hiera/logger.rb
|
58
|
+
- lib/salt_hiera/plugins/eyaml.rb
|
59
|
+
- lib/salt_hiera/plugins/files.rb
|
60
|
+
- lib/salt_hiera/plugins/no_plugin.rb
|
61
|
+
- lib/salt_hiera/plugins/yaml.rb
|
62
|
+
- lib/salt_hiera/salt_hiera.rb
|
63
|
+
- salthiera.gemspec
|
64
|
+
- tools/regem.sh
|
65
|
+
homepage: http://github.com/gtmtechltd/salthiera
|
66
|
+
licenses:
|
67
|
+
- MIT
|
68
|
+
metadata: {}
|
69
|
+
|
70
|
+
post_install_message:
|
71
|
+
rdoc_options: []
|
72
|
+
|
73
|
+
require_paths:
|
74
|
+
- lib
|
75
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- &id003
|
78
|
+
- ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: "0"
|
81
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
|
+
requirements:
|
83
|
+
- *id003
|
84
|
+
requirements: []
|
85
|
+
|
86
|
+
rubyforge_project:
|
87
|
+
rubygems_version: 2.0.14
|
88
|
+
signing_key:
|
89
|
+
specification_version: 4
|
90
|
+
summary: Hiera like tool for use as an external pillar with SaltStack
|
91
|
+
test_files: []
|
92
|
+
|