lambom 0.3.5 → 0.4.2
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 +37 -0
- data/bin/lambom +24 -3
- data/lambom.gemspec +13 -6
- data/lib/lambom.rb +2 -10
- data/lib/lambom/api.rb +7 -10
- data/lib/lambom/config.rb +29 -3
- data/lib/lambom/converger.rb +64 -21
- data/lib/lambom/version.rb +1 -1
- data/spec/api_client_spec.rb +2 -1
- data/spec/config_spec.rb +8 -2
- data/spec/converger_spec.rb +5 -14
- data/spec/test_berksfile +0 -0
- data/spec/test_config.yml +6 -1
- data/spec/test_json_file +10 -0
- data/spec/test_private_key.pem +0 -0
- metadata +50 -12
data/README.md
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
lambom
|
2
|
+
======
|
3
|
+
|
4
|
+
lambom is a tool to configure servers based on chef-solo and berkshelf.
|
5
|
+
|
6
|
+
Description
|
7
|
+
-----------
|
8
|
+
Riyic is a server configuration service based on chef (http://riyic.com).
|
9
|
+
|
10
|
+
The lambom gem is a tool to apply chef configurations generated with the riyic service, or defined in a pair of plain text files :
|
11
|
+
- a [json attributes file](http://docs.opscode.com/chef_solo.html#attributes) where the server configuration is detailed
|
12
|
+
- and a [berkshelf](http://github.com/berkshelf/berkshelf) file which specifies cookbooks restrictions and sources
|
13
|
+
|
14
|
+
Usage
|
15
|
+
-----
|
16
|
+
```
|
17
|
+
Usage: lambom [options]
|
18
|
+
-A, --api [API ENDPOINT URL] RIYIC Api endpoint to connect to download the server configuration
|
19
|
+
-j, --json [JSON FILE] Run server convergence with configuration from json attributes file
|
20
|
+
-b, --berksfile [BERKSFILE FILE] Use specified berksfile to download cookbooks and dependencies
|
21
|
+
-c, --cached Use local cached cookbooks
|
22
|
+
-D, --download [TARBALL URL] Download cookbooks tarball from url and unpack it in cookbooks chef path
|
23
|
+
-e, --env [ENVIRONMENT] Select environment
|
24
|
+
-s, --server [SERVER_UUID] Sets the server uuid to which to download configuration from RIYIC api
|
25
|
+
-k, --keyfile [PRIVATE KEYFILE] PEM Private keyfile to sign api requests
|
26
|
+
-l, --loglevel [LOG_LEVEL] Set loglevel
|
27
|
+
-d, --debug Debug mode
|
28
|
+
-v, --version Show version
|
29
|
+
```
|
30
|
+
|
31
|
+
Requirements
|
32
|
+
------------
|
33
|
+
- Tested in Ubuntu-12.04
|
34
|
+
- ruby 1.9.3
|
35
|
+
- chef ~> 11.8.2
|
36
|
+
- berkshelf ~> 2.0.12
|
37
|
+
- git
|
data/bin/lambom
CHANGED
@@ -14,18 +14,39 @@ options = {}
|
|
14
14
|
OptionParser.new do |opts|
|
15
15
|
opts.banner = "Usage: lambom [options]"
|
16
16
|
|
17
|
+
opts.on("-A", "--api [API ENDPOINT URL]",
|
18
|
+
"RIYIC Api endpoint to connect to download the server configuration") do |j|
|
19
|
+
options[:api_url] = j
|
20
|
+
end
|
21
|
+
|
17
22
|
opts.on("-j", "--json [JSON FILE]",
|
18
|
-
"Run server
|
23
|
+
"Run server convergence with configuration from json attributes file") do |j|
|
19
24
|
options[:json_file] = j
|
20
25
|
end
|
21
26
|
|
27
|
+
opts.on("-b", "--berksfile [BERKSFILE FILE]",
|
28
|
+
"Use specified berksfile to download cookbooks and dependencies") do |j|
|
29
|
+
options[:berksfile] = b
|
30
|
+
end
|
31
|
+
|
32
|
+
opts.on("-c", "--cached",
|
33
|
+
"Use local cached cookbooks") do
|
34
|
+
options[:cached] = true
|
35
|
+
end
|
36
|
+
|
37
|
+
opts.on("-D", "--download [TARBALL URL]",
|
38
|
+
"Download cookbooks tarball from url and unpack it in cookbooks chef path") do |d|
|
39
|
+
options[:download_tarball] = d
|
40
|
+
end
|
41
|
+
|
42
|
+
|
22
43
|
opts.on("-e", "--env [ENVIRONMENT]",
|
23
44
|
"Select environment") do |e|
|
24
45
|
options[:environment] = e
|
25
46
|
end
|
26
47
|
|
27
48
|
opts.on("-s", "--server [SERVER_UUID]",
|
28
|
-
"
|
49
|
+
"Sets the server uuid to which to download configuration from RIYIC api") do |s|
|
29
50
|
options[:server] = s
|
30
51
|
end
|
31
52
|
|
@@ -41,7 +62,7 @@ OptionParser.new do |opts|
|
|
41
62
|
|
42
63
|
opts.on("-d","--debug",
|
43
64
|
"Debug mode") do
|
44
|
-
|
65
|
+
Lambom.enable_debug
|
45
66
|
end
|
46
67
|
|
47
68
|
opts.on_tail("-v", "--version", "Show version") do
|
data/lambom.gemspec
CHANGED
@@ -6,9 +6,14 @@ require "lambom/version"
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = 'lambom'
|
8
8
|
s.version = Lambom::VERSION
|
9
|
-
s.date = '
|
10
|
-
s.summary = "Tool to
|
11
|
-
s.description =
|
9
|
+
s.date = '2014-01-21'
|
10
|
+
s.summary = "Tool to configure servers based on chef-solo and berkshelf"
|
11
|
+
s.description = <<-EOF
|
12
|
+
Riyic is a server configuration service based on chef (http://riyic.com).
|
13
|
+
The lambom gem is a tool to apply chef configurations generated with the riyic service, or defined in a pair of plain text files
|
14
|
+
(a json attributes file where the server configuration is detailed and a berkshelf file which specifies cookbooks restrictions and sources).
|
15
|
+
EOF
|
16
|
+
|
12
17
|
s.authors = ["J. Gomez"]
|
13
18
|
s.email = 'alambike@gmail.com'
|
14
19
|
s.require_paths = ["lib"]
|
@@ -16,9 +21,11 @@ Gem::Specification.new do |s|
|
|
16
21
|
s.files = `git ls-files`.split($/)
|
17
22
|
s.license = 'Apache-2.0'
|
18
23
|
|
19
|
-
s.add_runtime_dependency "oj","~> 2.
|
20
|
-
s.add_runtime_dependency "mixlib-authentication","~> 1.3"
|
21
|
-
s.add_runtime_dependency "mixlib-shellout","~> 1.3"
|
24
|
+
s.add_runtime_dependency "oj","~> 2.5.4"
|
25
|
+
s.add_runtime_dependency "mixlib-authentication","~> 1.3.0"
|
26
|
+
s.add_runtime_dependency "mixlib-shellout","~> 1.3.0"
|
27
|
+
s.add_runtime_dependency "chef","~> 11.8.2"
|
28
|
+
s.add_runtime_dependency "berkshelf","~> 2.0.12"
|
22
29
|
|
23
30
|
s.add_development_dependency "rspec", "~> 2.0"
|
24
31
|
|
data/lib/lambom.rb
CHANGED
@@ -19,7 +19,7 @@ module Lambom
|
|
19
19
|
def run(argv)
|
20
20
|
puts "DEBUG ENABLED" if $debug
|
21
21
|
puts "Recived args: #{argv.inspect}" if $debug
|
22
|
-
raise 'Must run as root' unless Process.uid == 0
|
22
|
+
raise 'Must be run as root' unless Process.uid == 0
|
23
23
|
|
24
24
|
#cargar config
|
25
25
|
conf = Lambom::Config.new.load
|
@@ -27,16 +27,8 @@ module Lambom
|
|
27
27
|
# sobreescribimos a configuracion ca linea de comandos
|
28
28
|
conf.merge(argv)
|
29
29
|
|
30
|
-
attributes = {}
|
31
|
-
# descargar atributos do servidor (a menos que nos pasen json_file => file.json)
|
32
|
-
if argv.has_key?(:json_file)
|
33
|
-
json_attributes = IO.read(argv[:json_file])
|
34
|
-
else
|
35
|
-
json_attributes = Lambom::ApiClient.new(conf).get_server_config
|
36
|
-
end
|
37
|
-
|
38
30
|
# executar converxencia
|
39
|
-
Lambom::Converger.new(conf
|
31
|
+
Lambom::Converger.new(conf).run
|
40
32
|
end
|
41
33
|
|
42
34
|
|
data/lib/lambom/api.rb
CHANGED
@@ -7,20 +7,14 @@ require 'net/http'
|
|
7
7
|
|
8
8
|
module Lambom
|
9
9
|
class ApiClient
|
10
|
-
|
11
|
-
#:production => "https://riyic.com/api/v1",
|
12
|
-
:production => "http://www2.ruleyourcloud.com/api/v1",
|
13
|
-
:development => "http://10.0.3.1:3000/api/v1"
|
14
|
-
}
|
10
|
+
DEFAULT_API_URL = "https://riyic.com/api/v1"
|
15
11
|
|
16
12
|
def initialize(conf)
|
17
13
|
@server_id = conf.server or raise "Required parameter \"server\" not found"
|
18
14
|
@private_key_file = conf.private_key_file or raise "Required parameter \"private_key_file\" not found"
|
19
15
|
@env = conf.environment
|
20
16
|
|
21
|
-
@api_url =
|
22
|
-
API_URL[:production]:
|
23
|
-
API_URL[:development]
|
17
|
+
@api_url = conf.api_url || DEFAULT_API_URL
|
24
18
|
end
|
25
19
|
|
26
20
|
def get_server_config
|
@@ -28,6 +22,10 @@ module Lambom
|
|
28
22
|
|
29
23
|
end
|
30
24
|
|
25
|
+
def get_berksfile
|
26
|
+
get("servers","#{@server_id}/berksfile")
|
27
|
+
end
|
28
|
+
|
31
29
|
|
32
30
|
|
33
31
|
def get(controller, action='',params={})
|
@@ -57,7 +55,7 @@ module Lambom
|
|
57
55
|
end
|
58
56
|
|
59
57
|
http = Net::HTTP.new(uri.host, uri.port)
|
60
|
-
|
58
|
+
http.use_ssl = true if uri.scheme == 'https'
|
61
59
|
|
62
60
|
response = http.request(req)
|
63
61
|
puts response.body if $debug
|
@@ -105,7 +103,6 @@ module Lambom
|
|
105
103
|
:user_id => server_id.to_s,
|
106
104
|
:http_method => request.method.to_s,
|
107
105
|
:timestamp => Time.now.iso8601,
|
108
|
-
#:file => MockFile.new,
|
109
106
|
:path => request.path.to_s,
|
110
107
|
:proto_version => 1.1
|
111
108
|
}
|
data/lib/lambom/config.rb
CHANGED
@@ -4,18 +4,33 @@ module Lambom
|
|
4
4
|
class Config
|
5
5
|
CONFIG_DIR = "/etc/riyic"
|
6
6
|
FILE = "#{CONFIG_DIR}/lambom.conf"
|
7
|
+
UNIX_PATH_REGEX = /^[\w\s.\/\-_+%]+$/i
|
8
|
+
URL_REGEX = /^(http(s)?|ftp):\/\/(([A-Za-z0-9-]+\.)*([A-Za-z0-9-]+\.[A-Za-z0-9]+))+((\/?)(([A-Za-z0-9\._\-]+)(\/){0,1}[A-Za-z0-9.-\/]*)){0,1}/
|
7
9
|
|
8
|
-
|
9
|
-
|
10
|
+
attr_accessor :server,
|
11
|
+
:private_key_file,
|
12
|
+
:environment,
|
13
|
+
:loglevel,
|
14
|
+
:json_file,
|
15
|
+
:berksfile,
|
16
|
+
:cached,
|
17
|
+
:download_tarball,
|
18
|
+
:api_url
|
19
|
+
|
10
20
|
attr_reader :logdir, :logfile
|
11
21
|
|
12
22
|
def initialize
|
13
23
|
@server = nil
|
14
24
|
@private_key_file = nil
|
25
|
+
@json_file = nil
|
26
|
+
@berksfile = nil
|
27
|
+
@cached = false
|
15
28
|
@environment = 'production'
|
16
29
|
@loglevel = 'debug'
|
17
30
|
@logdir = '/var/log/riyic'
|
18
31
|
@logfile = "solo_#{Time.now.strftime("%F_%T")}"
|
32
|
+
@download_tarball = nil
|
33
|
+
@api_url = nil
|
19
34
|
end
|
20
35
|
|
21
36
|
def load
|
@@ -56,19 +71,30 @@ module Lambom
|
|
56
71
|
end
|
57
72
|
|
58
73
|
def validate(parametro,valor)
|
74
|
+
|
59
75
|
case parametro.to_sym
|
60
76
|
when :server
|
61
77
|
# uuid
|
62
78
|
valor =~ /^[\d\w\-]{36}$/
|
63
79
|
when :private_key_file
|
64
80
|
#unix path
|
65
|
-
valor =~
|
81
|
+
valor =~ UNIX_PATH_REGEX && File.exists?(valor)
|
66
82
|
when :environment
|
67
83
|
#env de rails
|
68
84
|
["production","development","test"].include?(valor)
|
69
85
|
when :loglevel
|
70
86
|
#loglevel de chef
|
71
87
|
%w{debug info}.include?(valor)
|
88
|
+
when :berksfile
|
89
|
+
valor =~ UNIX_PATH_REGEX && File.exists?(valor)
|
90
|
+
when :json_file
|
91
|
+
valor =~ UNIX_PATH_REGEX && File.exists?(valor)
|
92
|
+
when :cached
|
93
|
+
[true,false].include?(valor)
|
94
|
+
when :api_url
|
95
|
+
valor =~ URL_REGEX
|
96
|
+
when :download_tarball
|
97
|
+
valor =~ URL_REGEX
|
72
98
|
else
|
73
99
|
false
|
74
100
|
#raise "Invalid parameter #{parametro}"
|
data/lib/lambom/converger.rb
CHANGED
@@ -1,9 +1,8 @@
|
|
1
|
+
#require "berkshelf/cli"
|
1
2
|
module Lambom
|
2
3
|
class Converger
|
3
4
|
include ShellMixin
|
4
5
|
|
5
|
-
COOKBOOKS_URL = 'http://www2.ruleyourcloud.com/cookbooks.tar.gz'
|
6
|
-
|
7
6
|
DEFAULT_CHEF_PATH = '/var/chef'
|
8
7
|
|
9
8
|
CACHE_PATH = "#{DEFAULT_CHEF_PATH}/cache"
|
@@ -36,9 +35,11 @@ EOF
|
|
36
35
|
:other => CHEF_CONF_OTHER,
|
37
36
|
}
|
38
37
|
|
39
|
-
def initialize(conf
|
38
|
+
def initialize(conf)
|
40
39
|
@conf = conf
|
41
|
-
@
|
40
|
+
@name = conf.server || String.random(8)
|
41
|
+
@json_file = conf.json_file
|
42
|
+
@berksfile = conf.berksfile
|
42
43
|
end
|
43
44
|
|
44
45
|
|
@@ -47,7 +48,9 @@ EOF
|
|
47
48
|
def run
|
48
49
|
preparar_entorno
|
49
50
|
|
50
|
-
|
51
|
+
descargar_atributos unless conf.json_file
|
52
|
+
|
53
|
+
descargar_cookbooks unless conf.cached || conf.environment == 'development'
|
51
54
|
|
52
55
|
ejecutar_converger
|
53
56
|
end
|
@@ -55,19 +58,69 @@ EOF
|
|
55
58
|
|
56
59
|
private
|
57
60
|
|
58
|
-
def
|
59
|
-
|
61
|
+
def descargar_atributos
|
62
|
+
|
63
|
+
# descargar atributos do servidor
|
64
|
+
json_attributes = Lambom::ApiClient.new(conf).get_server_config
|
65
|
+
|
66
|
+
@json_file = "#{CACHE_PATH}/#{@name}.json"
|
67
|
+
|
68
|
+
file = File.new(@json_file,"w")
|
69
|
+
file.write(json_attributes)
|
70
|
+
file.close
|
71
|
+
|
72
|
+
end
|
73
|
+
|
74
|
+
def descargar_cookbooks
|
75
|
+
if conf.download_tarball
|
76
|
+
# download cookbooks from a tarball
|
77
|
+
temp = "/tmp/cookbooks.tar.gz"
|
78
|
+
run_cmd('curl','-o',temp, '-L',conf.download_tarball)
|
79
|
+
FileUtils.mkdir_p(DEFAULT_CHEF_PATH) unless File.directory?(DEFAULT_CHEF_PATH)
|
80
|
+
run_cmd('tar','xzf',temp,'--no-same-owner','-C', DEFAULT_CHEF_PATH)
|
81
|
+
File.unlink(temp)
|
82
|
+
else
|
83
|
+
# use berkshelf to download cookbooks
|
84
|
+
# Download berksfile from riyic unless it was passed by command line
|
85
|
+
descargar_berksfile unless @berksfile
|
86
|
+
berks_install
|
87
|
+
end
|
88
|
+
end
|
60
89
|
|
61
|
-
|
62
|
-
|
63
|
-
|
90
|
+
def descargar_berksfile
|
91
|
+
@berksfile = "#{CACHE_PATH}/#{@name}.berksfile"
|
92
|
+
berksfile_str = Lambom::ApiClient.new(conf).get_berksfile
|
93
|
+
|
94
|
+
file = File.new(@berksfile,"w")
|
95
|
+
file.write(berksfile_str)
|
64
96
|
file.close
|
97
|
+
end
|
98
|
+
|
99
|
+
|
100
|
+
def berks_install
|
101
|
+
cmd = %W{
|
102
|
+
berks install -b #{@berksfile} -p #{DEFAULT_CHEF_PATH}/cookbooks
|
103
|
+
}
|
104
|
+
|
105
|
+
run_cmd *cmd
|
106
|
+
|
107
|
+
end
|
108
|
+
|
109
|
+
|
110
|
+
# def berks_install
|
111
|
+
# Berkshelf::Cli.new.invoke('berkshelf:install',
|
112
|
+
# ['-b',@berksfile,'-p',"#{DEFAULT_CHEF_PATH}/cookbooks"],
|
113
|
+
# :config => '/tmp/test')
|
114
|
+
# end
|
115
|
+
|
116
|
+
|
117
|
+
def ejecutar_converger
|
65
118
|
|
66
119
|
cmd = %W{
|
67
120
|
chef-solo
|
68
121
|
-c #{CHEF_CONF_FILE}
|
69
122
|
--log_level #{conf.loglevel}
|
70
|
-
-j #{
|
123
|
+
-j #{@json_file}
|
71
124
|
}
|
72
125
|
|
73
126
|
unless $debug
|
@@ -97,16 +150,6 @@ EOF
|
|
97
150
|
switch_chef_conf(conf.environment.to_sym)
|
98
151
|
end
|
99
152
|
|
100
|
-
def descargar_cookbooks
|
101
|
-
unless (conf.environment == 'development')
|
102
|
-
# aqui podemos meter unha ejecucion de berkshelf para descargar os cookbooks necesarios
|
103
|
-
temp = "/tmp/cookbooks.tar.gz"
|
104
|
-
run_cmd('curl','-o',temp, '-L',COOKBOOKS_URL)
|
105
|
-
FileUtils.mkdir_p(DEFAULT_CHEF_PATH) unless File.directory?(DEFAULT_CHEF_PATH)
|
106
|
-
run_cmd('tar','xzf',temp,'--no-same-owner','-C', DEFAULT_CHEF_PATH)
|
107
|
-
File.unlink(temp)
|
108
|
-
end
|
109
|
-
end
|
110
153
|
|
111
154
|
def switch_chef_conf(env)
|
112
155
|
FileUtils.mkdir_p(Lambom::Config::CONFIG_DIR) unless File.directory?(Lambom::Config::CONFIG_DIR)
|
data/lib/lambom/version.rb
CHANGED
data/spec/api_client_spec.rb
CHANGED
@@ -6,7 +6,8 @@ describe Lambom::ApiClient do
|
|
6
6
|
|
7
7
|
conf.merge(environment: "production",
|
8
8
|
server: "4586273f-f17a-4984-99ef-69c255e1b395",
|
9
|
-
private_key_file: "spec/private_key.pem"
|
9
|
+
private_key_file: "spec/private_key.pem",
|
10
|
+
api_url: "http://172.17.42.1:3000/api/v1")
|
10
11
|
|
11
12
|
api = Lambom::ApiClient.new(conf)
|
12
13
|
|
data/spec/config_spec.rb
CHANGED
@@ -14,12 +14,18 @@ describe Lambom::Config do
|
|
14
14
|
it "must have test file values" do
|
15
15
|
expect(config.server).to eq("1ca71cd6-08c4-4855-9381-2f41aeffe59c")
|
16
16
|
expect(config.environment).to eq("development")
|
17
|
-
expect(config.private_key_file).to eq("/
|
17
|
+
expect(config.private_key_file).to eq("spec/private_key.pem")
|
18
18
|
expect(config.loglevel).to eq("debug")
|
19
|
+
expect(config.berksfile).to eq("spec/test_berksfile")
|
20
|
+
expect(config.json_file).to eq("spec/test_json_file")
|
21
|
+
expect(config.cached).to eq(false)
|
22
|
+
expect(config.api_url).to eq("https://www.riyic.com/api/v1")
|
23
|
+
expect(config.download_tarball).to eq("https://www.riyic.com/cookbooks.tar.gz")
|
24
|
+
|
19
25
|
end
|
20
26
|
|
21
27
|
it "must have merged values" do
|
22
|
-
merge_key_file = '
|
28
|
+
merge_key_file = 'spec/test_private_key.pem'
|
23
29
|
merge_server = "1ca71cd6-08c4-4855-9381-111111111111"
|
24
30
|
merge_env = 'test'
|
25
31
|
merge_loglevel = 'info'
|
data/spec/converger_spec.rb
CHANGED
@@ -7,23 +7,14 @@ describe Lambom::Converger do
|
|
7
7
|
conf.merge(:environment => "production",
|
8
8
|
:server => "4586273f-f17a-4984-99ef-69c255e1b395",
|
9
9
|
:private_key_file => "spec/private_key.pem",
|
10
|
-
:loglevel => 'info'
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
"dockerized": "no",
|
15
|
-
"updates_check_interval": "never",
|
16
|
-
"env": "development"
|
17
|
-
},
|
18
|
-
"run_list": [
|
19
|
-
"recipe[riyic::default]"
|
20
|
-
]
|
21
|
-
}
|
22
|
-
EOF
|
10
|
+
:loglevel => 'info',
|
11
|
+
:json_file => 'spec/test_json_file',
|
12
|
+
:api_url => 'http://172.17.42.1:3000/api/v1' )
|
13
|
+
|
23
14
|
|
24
15
|
it "must run convergence tool" do
|
25
16
|
expect{
|
26
|
-
Lambom::Converger.new(conf
|
17
|
+
Lambom::Converger.new(conf).run
|
27
18
|
}.not_to raise_error
|
28
19
|
end
|
29
20
|
end
|
data/spec/test_berksfile
ADDED
File without changes
|
data/spec/test_config.yml
CHANGED
@@ -1,4 +1,9 @@
|
|
1
1
|
server: 1ca71cd6-08c4-4855-9381-2f41aeffe59c
|
2
2
|
environment: development
|
3
|
-
private_key_file: /
|
3
|
+
private_key_file: spec/private_key.pem
|
4
4
|
loglevel: debug
|
5
|
+
berksfile: spec/test_berksfile
|
6
|
+
json_file: spec/test_json_file
|
7
|
+
cached: false
|
8
|
+
api_url: https://www.riyic.com/api/v1
|
9
|
+
download_tarball: https://www.riyic.com/cookbooks.tar.gz
|
data/spec/test_json_file
ADDED
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lambom
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.2
|
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:
|
12
|
+
date: 2014-01-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: oj
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: 2.5.4
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
29
|
+
version: 2.5.4
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: mixlib-authentication
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -34,7 +34,7 @@ dependencies:
|
|
34
34
|
requirements:
|
35
35
|
- - ~>
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version:
|
37
|
+
version: 1.3.0
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -42,7 +42,7 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
45
|
+
version: 1.3.0
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: mixlib-shellout
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -50,7 +50,39 @@ dependencies:
|
|
50
50
|
requirements:
|
51
51
|
- - ~>
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: 1.3.0
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.3.0
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: chef
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 11.8.2
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 11.8.2
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: berkshelf
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ~>
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: 2.0.12
|
54
86
|
type: :runtime
|
55
87
|
prerelease: false
|
56
88
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -58,7 +90,7 @@ dependencies:
|
|
58
90
|
requirements:
|
59
91
|
- - ~>
|
60
92
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
93
|
+
version: 2.0.12
|
62
94
|
- !ruby/object:Gem::Dependency
|
63
95
|
name: rspec
|
64
96
|
requirement: !ruby/object:Gem::Requirement
|
@@ -75,9 +107,11 @@ dependencies:
|
|
75
107
|
- - ~>
|
76
108
|
- !ruby/object:Gem::Version
|
77
109
|
version: '2.0'
|
78
|
-
description: Riyic is a server configuration service based on chef (http://riyic.com)
|
79
|
-
|
80
|
-
in
|
110
|
+
description: ! "Riyic is a server configuration service based on chef (http://riyic.com).\nThe
|
111
|
+
lambom gem is a tool to apply chef configurations generated with the riyic service,
|
112
|
+
or defined in a pair of plain text files \n(a json attributes file where the server
|
113
|
+
configuration is detailed and a berkshelf file which specifies cookbooks restrictions
|
114
|
+
and sources).\n"
|
81
115
|
email: alambike@gmail.com
|
82
116
|
executables:
|
83
117
|
- lambom
|
@@ -86,6 +120,7 @@ extra_rdoc_files: []
|
|
86
120
|
files:
|
87
121
|
- .gitignore
|
88
122
|
- .rspec
|
123
|
+
- README.md
|
89
124
|
- bin/lambom
|
90
125
|
- lambom.gemspec
|
91
126
|
- lib/lambom.rb
|
@@ -100,9 +135,12 @@ files:
|
|
100
135
|
- spec/private_key.pem
|
101
136
|
- spec/public_key.pem
|
102
137
|
- spec/spec_helper.rb
|
138
|
+
- spec/test_berksfile
|
103
139
|
- spec/test_config.yml
|
104
140
|
- spec/test_config_bad_options.yml
|
105
141
|
- spec/test_config_bad_yaml.yml
|
142
|
+
- spec/test_json_file
|
143
|
+
- spec/test_private_key.pem
|
106
144
|
homepage: https://github.com/RIYIC/lambom
|
107
145
|
licenses:
|
108
146
|
- Apache-2.0
|
@@ -127,5 +165,5 @@ rubyforge_project:
|
|
127
165
|
rubygems_version: 1.8.24
|
128
166
|
signing_key:
|
129
167
|
specification_version: 3
|
130
|
-
summary: Tool to
|
168
|
+
summary: Tool to configure servers based on chef-solo and berkshelf
|
131
169
|
test_files: []
|