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 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 configuration with json attributes file") do |j|
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
- "Set server to which get configuration from riyic api") do |s|
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
- Lambom.enable_debug
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 = '2013-12-23'
10
- s.summary = "Tool to apply riyic configurations"
11
- s.description = "Riyic is a server configuration service based on chef (http://riyic.com). The lambom gem is a tool to apply, through chef-solo, your riyic configurations in your server"
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.0"
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,json_attributes).run
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
- API_URL = {
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 = (@env == "production")?
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
- #http.use_ssl = true
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
- attr_accessor :server, :private_key_file, :environment, :loglevel
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 =~ /^[\w\s.\/\-_+%]+$/i
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}"
@@ -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, json)
38
+ def initialize(conf)
40
39
  @conf = conf
41
- @attributes_json = json
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
- descargar_cookbooks
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 ejecutar_converger
59
- name = conf.server || String.random(8)
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
- filename = "#{CACHE_PATH}/#{name}.json"
62
- file = File.new(filename,"w")
63
- file.write(attributes_json)
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 #{filename}
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)
@@ -1,3 +1,3 @@
1
1
  module Lambom
2
- VERSION = "0.3.5"
2
+ VERSION = "0.4.2"
3
3
  end
@@ -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("/etc/riyic/private.pem")
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 = 'test.pem'
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'
@@ -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
- json = <<EOF
12
- {
13
- "riyic": {
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, json).run
17
+ Lambom::Converger.new(conf).run
27
18
  }.not_to raise_error
28
19
  end
29
20
  end
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: /etc/riyic/private.pem
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
@@ -0,0 +1,10 @@
1
+ {
2
+ "riyic": {
3
+ "dockerized": "no",
4
+ "updates_check_interval": "never",
5
+ "env": "development"
6
+ },
7
+ "run_list": [
8
+ "recipe[riyic::default]"
9
+ ]
10
+ }
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.3.5
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: 2013-12-23 00:00:00.000000000 Z
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: '2.0'
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: '2.0'
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: '1.3'
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: '1.3'
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: '1.3'
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: '1.3'
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
- The lambom gem is a tool to apply, through chef-solo, your riyic configurations
80
- in your server
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 apply riyic configurations
168
+ summary: Tool to configure servers based on chef-solo and berkshelf
131
169
  test_files: []