cucumber-chef 2.0.7 → 2.1.0.rc.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. data/README.md +1 -1
  2. data/Rakefile +1 -1
  3. data/bin/cc-knife +2 -5
  4. data/bin/cc-push +50 -26
  5. data/bin/cc-server +9 -10
  6. data/bin/cucumber-chef +65 -71
  7. data/chef_repo/cookbooks/cucumber-chef/attributes/default.rb +1 -1
  8. data/chef_repo/cookbooks/cucumber-chef/recipes/default.rb +1 -1
  9. data/chef_repo/cookbooks/cucumber-chef/recipes/lxc.rb +34 -36
  10. data/chef_repo/cookbooks/cucumber-chef/recipes/test_lab.rb +64 -47
  11. data/chef_repo/cookbooks/cucumber-chef/templates/default/solrconfig.erb +650 -0
  12. data/cucumber-chef.gemspec +5 -5
  13. data/lib/cucumber/chef/bootstrap.rb +10 -10
  14. data/lib/cucumber/chef/config.rb +15 -15
  15. data/lib/cucumber/chef/helpers/chef_client.rb +88 -14
  16. data/lib/cucumber/chef/helpers/chef_server.rb +39 -16
  17. data/lib/cucumber/chef/helpers/command.rb +28 -12
  18. data/lib/cucumber/chef/helpers/container.rb +29 -26
  19. data/lib/cucumber/chef/helpers/minitest.rb +1 -1
  20. data/lib/cucumber/chef/helpers/server.rb +37 -18
  21. data/lib/cucumber/chef/helpers/test_lab.rb +1 -1
  22. data/lib/cucumber/chef/helpers/utility.rb +23 -3
  23. data/lib/cucumber/chef/helpers.rb +10 -8
  24. data/lib/cucumber/chef/provisioner.rb +22 -21
  25. data/lib/cucumber/chef/steps/chef_steps.rb +1 -1
  26. data/lib/cucumber/chef/steps/minitest_steps.rb +3 -3
  27. data/lib/cucumber/chef/steps/provision_steps.rb +7 -6
  28. data/lib/cucumber/chef/steps/ssh_steps.rb +31 -2
  29. data/lib/cucumber/chef/steps.rb +1 -1
  30. data/lib/cucumber/chef/templates/cucumber/cc-hooks.rb +111 -0
  31. data/lib/cucumber/chef/templates/cucumber/env.rb +0 -87
  32. data/lib/cucumber/chef/templates/cucumber/readme-environments.erb +1 -0
  33. data/lib/cucumber/chef/templates/cucumber/readme-roles.erb +1 -1
  34. data/lib/cucumber/chef/templates/cucumber-chef/config-rb.erb +5 -0
  35. data/lib/cucumber/chef/test_lab.rb +70 -23
  36. data/lib/cucumber/chef/utility.rb +121 -31
  37. data/lib/cucumber/chef/version.rb +2 -2
  38. data/lib/cucumber/chef.rb +1 -1
  39. data/lib/cucumber-chef.rb +1 -1
  40. data/spec/cucumber/chef/config_spec.rb +1 -1
  41. data/spec/cucumber/chef/provisioner_spec.rb +1 -1
  42. data/spec/cucumber/chef/test_lab_spec.rb +1 -1
  43. data/spec/spec_helper.rb +1 -1
  44. metadata +8 -5
data/README.md CHANGED
@@ -26,7 +26,7 @@ Cucumber-Chef - A test driven infrastructure system
26
26
 
27
27
  * Author: Stephen Nelson-Smith <stephen@atalanta-systems.com>
28
28
  * Author: Zachary Patten <zachary@jovelabs.com>
29
- * Copyright: Copyright (c) 2011-2012 Atalanta Systems Ltd
29
+ * Copyright: Copyright (c) 2011-2013 Atalanta Systems Ltd
30
30
  * License: Apache License, Version 2.0
31
31
 
32
32
  Licensed under the Apache License, Version 2.0 (the "License");
data/Rakefile CHANGED
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # Author: Stephen Nelson-Smith <stephen@atalanta-systems.com>
4
4
  # Author: Zachary Patten <zachary@jovelabs.com>
5
- # Copyright: Copyright (c) 2011-2012 Atalanta Systems Ltd
5
+ # Copyright: Copyright (c) 2011-2013 Atalanta Systems Ltd
6
6
  # License: Apache License, Version 2.0
7
7
  #
8
8
  # Licensed under the Apache License, Version 2.0 (the "License");
data/bin/cc-knife CHANGED
@@ -1,21 +1,18 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'cucumber-chef'
3
3
 
4
- $logger = ZTK::Logger.new(Cucumber::Chef.log_file)
5
- Cucumber::Chef.is_rc? and ($logger.level = ZTK::Logger::DEBUG)
6
-
7
4
  # if we have bundler binstubs use that; otherwise attempt to detect
8
5
  knife = (Cucumber::Chef.locate(:file, "bin", "knife") rescue nil)
9
6
  knife = "/usr/bin/env knife" unless knife
10
7
 
11
8
  message = "cc-knife v#{Cucumber::Chef::VERSION}"
12
9
  puts(message)
13
- $logger.info { message }
10
+ Cucumber::Chef.logger.info { message }
14
11
 
15
12
  Cucumber::Chef::Config.load
16
13
  if (test_lab = Cucumber::Chef::TestLab.new) && (test_lab.labs_running.count > 0)
17
14
 
18
- knife_rb = Cucumber::Chef.locate(:file, ".cucumber-chef", "knife.rb")
15
+ knife_rb = Cucumber::Chef.knife_rb
19
16
  if File.exists?(knife_rb)
20
17
  command = [knife, ARGV, "--server-url http://#{test_lab.labs_running.first.public_ip_address}:4000", "--config #{knife_rb}", "2>&1"].flatten.compact.join(" ")
21
18
  puts(command)
data/bin/cc-push CHANGED
@@ -1,38 +1,62 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'cucumber-chef'
3
3
 
4
- def run(command)
5
- puts "Executing: '#{command}'"
6
- @ssh.exec(command)
4
+ def run_remote(command)
5
+ $logger.info { "cc-push(run_remote): '#{command}'" }
6
+ $test_lab.ssh.exec(command)
7
7
  end
8
8
 
9
- $logger = ZTK::Logger.new(Cucumber::Chef.log_file)
10
- Cucumber::Chef.is_rc? and ($logger.level = ZTK::Logger::DEBUG)
11
-
12
- message = "cc-push v#{Cucumber::Chef::VERSION}"
13
- puts(message)
14
- $logger.info { message }
9
+ def run_local(command)
10
+ $logger.info { "cc-push(run_local): '#{command}'" }
11
+ %x(#{command})
12
+ end
15
13
 
16
- Cucumber::Chef::Config.load
17
- if (test_lab = Cucumber::Chef::TestLab.new) && (test_lab.labs_running.count > 0)
18
- @ssh = ZTK::SSH.new
19
- @ssh.config.host_name = test_lab.labs_running.first.public_ip_address
20
- @ssh.config.user = "ubuntu"
21
- @ssh.config.keys = Cucumber::Chef.locate(:file, ".cucumber-chef", "id_rsa-#{@ssh.config.user}")
14
+ tag = Cucumber::Chef.tag("cc-push")
15
+ puts(tag)
16
+ Cucumber::Chef.load_config(tag)
17
+ $logger = Cucumber::Chef.logger
22
18
 
19
+ if ($test_lab = Cucumber::Chef::TestLab.new) && ($test_lab.labs_running.count > 0)
23
20
  gem_name = "cucumber-chef-#{Cucumber::Chef::VERSION}.gem"
24
-
25
- puts %x(cd #{Cucumber::Chef.root} && gem build cucumber-chef.gemspec -V)
26
-
27
- local_file = File.join(Cucumber::Chef.root, gem_name)
28
- remote_file = File.join("/", "home", @ssh.config.user, gem_name)
29
- puts("#{local_file} -> #{@ssh.config.user}@#{test_lab.labs_running.first.public_ip_address}:#{remote_file}")
30
- @ssh.upload(local_file, remote_file)
31
- FileUtils.rm_f(File.join(Cucumber::Chef.root, "*.gem"))
32
-
33
- run("cd #{File.dirname(remote_file)}; ls -la | grep 'cucumber-chef-'; sudo gem uninstall cucumber-chef -a -I -x -V; rm -f /usr/lib/ruby/gems/1.8/cache/#{gem_name}; sudo gem install #{gem_name} -l -V; rm -f *.gem")
21
+ gem_path = File.join(Cucumber::Chef.root, gem_name)
22
+
23
+ $logger.info { "gem_name == '#{gem_name}'" }
24
+ $logger.info { "gem_path == '#{gem_path}'" }
25
+
26
+ if !File.exists?(gem_path)
27
+ puts
28
+ puts("To build cucumber-chef and install the gem in to the test lab, execute:")
29
+ puts
30
+ puts [ "cd #{Cucumber::Chef.root}", "gem build cucumber-chef.gemspec", "cd #{Dir.pwd}", "bundle exec cc-push" ].join(" ; ")
31
+ puts
32
+ else
33
+ local_file = File.join(Cucumber::Chef.root, gem_name)
34
+ remote_file = File.join("/", "home", $test_lab.ssh.config.user, gem_name)
35
+ $logger.info { "#{local_file} -> #{$test_lab.ssh.config.user}@#{$test_lab.labs_running.first.public_ip_address}:#{remote_file}" }
36
+
37
+ $test_lab.ssh.upload(local_file, remote_file)
38
+ FileUtils.rm_f(File.join(Cucumber::Chef.root, "*.gem"))
39
+
40
+ run_remote(<<-EOH
41
+ sudo /bin/bash -c '
42
+ cd #{File.dirname(remote_file)}
43
+
44
+ gem uninstall ztk --all --ignore-dependencies --executables --verbose --backtrace
45
+ gem cleanup ztk --verbose --backtrace
46
+ gem install ztk --verbose --backtrace
47
+
48
+ ls -la | grep 'cucumber-chef-'
49
+ gem uninstall cucumber-chef --all --ignore-dependencies --executables --verbose --backtrace
50
+ rm -fv /usr/lib/ruby/gems/1.8/cache/#{gem_name}
51
+ gem cleanup cucumber-chef --verbose --backtrace
52
+ gem install #{gem_name} --local --verbose --backtrace
53
+ rm -fv /home/#{$test_lab.ssh.config.user}/*.gem'
54
+ EOH
55
+ )
56
+ File.exists?(gem_path) && File.delete(gem_path)
57
+ end
34
58
 
35
59
  else
36
- puts("No running cucumber-chef test labs to connect to!")
60
+ puts("No run_remotening cucumber-chef test labs to connect to!")
37
61
  exit(1)
38
62
  end
data/bin/cc-server CHANGED
@@ -27,24 +27,23 @@ class FrontObject
27
27
  include Cucumber::Chef::Helpers
28
28
 
29
29
  def initialize
30
- knife_rb = Cucumber::Chef.locate(:file, ".chef", "knife.rb")
31
- Chef::Config.from_file(knife_rb)
32
-
33
- $logger = ZTK::Logger.new(Cucumber::Chef.log_file)
34
- Cucumber::Chef.is_rc? and ($logger.level = ZTK::Logger::DEBUG)
35
-
36
- puts("cc-server v#{Cucumber::Chef::VERSION}")
30
+ tag = Cucumber::Chef.tag("cc-server")
31
+ puts(" * #{tag}")
32
+ Cucumber::Chef.load_config(tag)
33
+ $logger = Cucumber::Chef.logger
37
34
  end
38
35
 
39
36
  def shutdown
40
37
  DRb.stop_service
41
38
  end
42
39
 
43
- end
40
+ def logger
41
+ $logger
42
+ end
44
43
 
45
- hostname = %x( hostname -f ).chomp
44
+ end
46
45
 
47
- list = %w( deny all allow 127.0.0.1 )
46
+ list = %w( deny all )
48
47
  ARGV[0] and (list += [ 'allow', ARGV[0] ])
49
48
  acl = ACL.new(list)
50
49
 
data/bin/cucumber-chef CHANGED
@@ -3,6 +3,8 @@
3
3
  require 'thor'
4
4
  require 'cucumber-chef'
5
5
 
6
+ # $logger = Cucumber::Chef.logger
7
+
6
8
  class CucumberChef < Thor
7
9
  include Thor::Actions
8
10
 
@@ -39,9 +41,11 @@ class CucumberChef < Thor
39
41
  "example_feature.erb" => "features/#{project}/#{project}.feature",
40
42
  "example_steps.erb" => "features/#{project}/step_definitions/#{project}_steps.rb",
41
43
  "env.rb" => "features/support/env.rb",
44
+ "cc-hooks.rb" => "features/support/cc-hooks.rb",
42
45
  "readme-data_bags.erb" => "features/support/data_bags/README",
43
46
  "readme-roles.erb" => "features/support/roles/README",
44
- "readme-keys.erb" => "features/support/keys/README"
47
+ "readme-keys.erb" => "features/support/keys/README",
48
+ "readme-environments.erb" => "features/support/environments/README"
45
49
  }
46
50
 
47
51
  templates.each do |source, destination|
@@ -50,29 +54,12 @@ class CucumberChef < Thor
50
54
  end
51
55
 
52
56
  def load_config
57
+ tag = Cucumber::Chef.tag("cucumber-chef")
58
+ puts(set_color(tag, :green, true))
59
+ Cucumber::Chef.load_config(tag)
60
+ $logger = Cucumber::Chef.logger
53
61
 
54
- chef_repo = (Cucumber::Chef.locate_parent(".chef") rescue nil)
55
- if ( !chef_repo || ( !File.exists?(chef_repo) || !File.directory?(chef_repo) ) )
56
- fatal("It does not look like you are inside a chef-repo! Please relocate to one and execute your command again!")
57
- exit(255)
58
- end
59
-
60
- $logger = ZTK::Logger.new(Cucumber::Chef.log_file)
61
- Cucumber::Chef.is_rc? and ($logger.level = ZTK::Logger::DEBUG)
62
-
63
- message = "cucumber-chef v#{Cucumber::Chef::VERSION}"
64
- puts(set_color(message, :green, true))
65
-
66
- $logger.info { "================================================================================" }
67
- $logger.info { message }
68
- $logger.info { "UNAME: %s" % %x( uname -a ).chomp.strip }
69
- $logger.info { "Ruby Version: #{RUBY_VERSION}" }
70
- $logger.info { "Ruby Patch Level: #{RUBY_PATCHLEVEL}" }
71
- $logger.info { "Ruby Platform: #{RUBY_PLATFORM}" }
72
- $logger.info { "Ruby Engine: #{RUBY_ENGINE}" }
73
- $logger.info { "================================================================================" }
74
-
75
- @options.test? ? Cucumber::Chef::Config.test : Cucumber::Chef::Config.load
62
+ @options.test? and Cucumber::Chef::Config.test
76
63
  end
77
64
 
78
65
  def fatal(message)
@@ -218,21 +205,13 @@ class CucumberChef < Thor
218
205
  puts(set_color("...BOOM!", :red, true))
219
206
  puts
220
207
 
221
- ssh = ZTK::SSH.new
222
- ssh.config.host_name = test_lab.labs_running.first.public_ip_address
223
- ssh.config.user = "ubuntu"
224
- ssh.config.keys = Cucumber::Chef.locate(:file, ".cucumber-chef", "id_rsa-#{ssh.config.user}")
225
- ssh.exec("nohup sudo pkill -9 -f cc-server")
226
- ssh.exec("nohup sudo BACKGROUND=yes cc-server #{Cucumber::Chef.external_ip}")
208
+ test_lab.ssh.exec("nohup sudo pkill -9 -f cc-server")
209
+ test_lab.ssh.exec("nohup sudo BACKGROUND=yes cc-server #{Cucumber::Chef.external_ip}")
227
210
  Cucumber::Chef.spinner do
228
211
  ZTK::TCPSocketCheck.new(:host => test_lab.labs_running.first.public_ip_address, :port => 8787, :data => "\n\n").wait
229
212
  end
230
-
231
- # initialize our drb object
232
- test_lab_drb ||= DRbObject.new_with_uri("druby://#{test_lab.labs_running.first.public_ip_address}:8787")
233
- test_lab_drb and DRb.start_service
234
- test_lab_drb.servers = Hash.new(nil)
235
- test_lab_drb.server_destroy(container)
213
+ test_lab.drb.servers = Hash.new(nil)
214
+ test_lab.drb.server_destroy(container)
236
215
  else
237
216
  puts
238
217
  puts(set_color("Whew! That was close!", :green, true))
@@ -249,6 +228,19 @@ class CucumberChef < Thor
249
228
  fatal(e)
250
229
  end
251
230
 
231
+ ################################################################################
232
+
233
+ desc "test", "depreciated"
234
+ def test
235
+ puts
236
+ puts(set_color("The test task is depreciated! You should execute cucumber directly.", :red, true))
237
+ puts
238
+
239
+ rescue Cucumber::Chef::Error => e
240
+ $logger.fatal { e.backtrace.join("\n") }
241
+ fatal(e)
242
+ end
243
+
252
244
  ################################################################################
253
245
 
254
246
  desc "up", "Startup the cucumber-chef test lab"
@@ -296,28 +288,13 @@ class CucumberChef < Thor
296
288
 
297
289
  puts
298
290
  if (test_lab = Cucumber::Chef::TestLab.new) && (test_lab.labs_running.count > 0)
299
- ssh = ZTK::SSH.new
300
-
301
291
  if args.size == 0
302
- ssh.config.host_name = test_lab.labs_running.first.public_ip_address
303
- ssh.config.user = "ubuntu"
304
- ssh.config.keys = Cucumber::Chef.locate(:file, ".cucumber-chef", "id_rsa-#{ssh.config.user}")
305
-
306
292
  puts([set_color("Attempting SSH connection to cucumber-chef '", :blue, true), set_color("test lab", :cyan, true), set_color("'...", :blue, true)].join)
307
- ssh.console
293
+ test_lab.ssh.console
308
294
  else
309
295
  container = args[0]
310
-
311
- ssh.config.proxy_host_name = test_lab.labs_running.first.public_ip_address
312
- ssh.config.proxy_user = "ubuntu"
313
- ssh.config.proxy_keys = Cucumber::Chef.locate(:file, ".cucumber-chef", "id_rsa-#{ssh.config.proxy_user}")
314
-
315
- ssh.config.host_name = container
316
- ssh.config.user = "root"
317
- ssh.config.keys = Cucumber::Chef.locate(:file, ".cucumber-chef", "id_rsa-#{ssh.config.proxy_user}")
318
-
319
296
  puts([set_color("Attempting SSH connection to cucumber-chef container '", :blue, true), set_color(container, :cyan, true), set_color("'...", :blue, true)].join)
320
- ssh.console
297
+ test_lab.proxy_ssh(container).console
321
298
  end
322
299
 
323
300
  else
@@ -330,6 +307,39 @@ class CucumberChef < Thor
330
307
  fatal(e)
331
308
  end
332
309
 
310
+ ################################################################################
311
+
312
+ desc "log", "Streams the cucumber-chef local and test lab logs to the terminal."
313
+ def log
314
+ load_config
315
+
316
+ if ($test_lab = Cucumber::Chef::TestLab.new) && ($test_lab.labs_running.count > 0)
317
+ $tail_thread_remote = Thread.new do
318
+ $test_lab.ssh.exec("tail -n 0 -f /home/#{$test_lab.ssh.config.user}/.cucumber-chef/cucumber-chef.log")
319
+
320
+ Kernel.at_exit do
321
+ $test_lab.ssh.close
322
+ end
323
+ end
324
+
325
+ log_file = File.open(Cucumber::Chef.log_file, "r")
326
+ log_file.seek(0, ::IO::SEEK_END)
327
+ loop do
328
+ if !(data = (log_file.readline rescue nil)).nil?
329
+ print(data)
330
+ else
331
+ sleep(1)
332
+ end
333
+ end
334
+
335
+ $tail_thread_remote.join
336
+ end
337
+
338
+ Kernel.at_exit do
339
+ $tail_thread_remote.kill
340
+ end
341
+ end
342
+
333
343
  ################################################################################
334
344
 
335
345
  desc "diagnose <container>", "Provide diagnostics from the chef-client on the specified container."
@@ -341,29 +351,19 @@ class CucumberChef < Thor
341
351
 
342
352
  puts
343
353
  if (test_lab = Cucumber::Chef::TestLab.new) && (test_lab.labs_running.count > 0)
344
- ssh = ZTK::SSH.new
345
-
346
- ssh.config.proxy_host_name = test_lab.labs_running.first.public_ip_address
347
- ssh.config.proxy_user = "ubuntu"
348
- ssh.config.proxy_keys = Cucumber::Chef.locate(:file, ".cucumber-chef", "id_rsa-#{ssh.config.proxy_user}")
349
-
350
- ssh.config.host_name = container
351
- ssh.config.user = "root"
352
- ssh.config.keys = Cucumber::Chef.locate(:file, ".cucumber-chef", "id_rsa-#{ssh.config.proxy_user}")
353
-
354
354
  puts([set_color("Attempting to collect diagnostic information on cucumber-chef container '", :blue, true), set_color(container, :cyan, true), set_color("'...", :blue, true)].join)
355
355
  if @options.strace?
356
356
  puts
357
357
  puts("chef-stacktrace.out:")
358
358
  puts(set_color("============================================================================", :bold))
359
- ssh.exec("[[ -e /var/chef/cache/chef-stacktrace.out ]] && cat /var/chef/cache/chef-stacktrace.out")
359
+ test_lab.proxy_ssh(container).exec("[[ -e /var/chef/cache/chef-stacktrace.out ]] && cat /var/chef/cache/chef-stacktrace.out")
360
360
  print("\n")
361
361
  end
362
362
  if @options.log?
363
363
  puts
364
364
  puts("chef.log:")
365
365
  puts(set_color("============================================================================", :bold))
366
- ssh.exec("[[ -e /var/log/chef/client.log ]] && tail -n #{@options.lines} /var/log/chef/client.log")
366
+ test_lab.proxy_ssh(container).exec("[[ -e /var/log/chef/client.log ]] && tail -n #{@options.lines} /var/log/chef/client.log")
367
367
  end
368
368
  end
369
369
  puts
@@ -397,16 +397,10 @@ class CucumberChef < Thor
397
397
 
398
398
  puts
399
399
  if (test_lab = Cucumber::Chef::TestLab.new) && (test_lab.labs_running.count > 0)
400
- ssh = ZTK::SSH.new
401
-
402
- ssh.config.host_name = test_lab.labs_running.first.public_ip_address
403
- ssh.config.user = "ubuntu"
404
- ssh.config.keys = Cucumber::Chef.locate(:file, ".cucumber-chef", "id_rsa-#{ssh.config.user}")
405
-
406
400
  puts(set_color("Getting container processes from cucumber-chef test lab...", :blue, true))
407
401
  puts
408
402
  puts(set_color("============================================================================", :bold))
409
- ssh.exec("lxc-ps --lxc -- #{args.join(" ")}")
403
+ test_lab.ssh.exec("lxc-ps --lxc -- #{args.join(" ")}")
410
404
  print("\n")
411
405
  end
412
406
  puts
@@ -1,7 +1,7 @@
1
1
  ################################################################################
2
2
  #
3
3
  # Author: Zachary Patten <zachary@jovelabs.com>
4
- # Copyright: Copyright (c) 2011-2012 Atalanta Systems Ltd
4
+ # Copyright: Copyright (c) 2011-2013 Atalanta Systems Ltd
5
5
  # License: Apache License, Version 2.0
6
6
  #
7
7
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -1,7 +1,7 @@
1
1
  ################################################################################
2
2
  #
3
3
  # Author: Zachary Patten <zachary@jovelabs.com>
4
- # Copyright: Copyright (c) 2011-2012 Atalanta Systems Ltd
4
+ # Copyright: Copyright (c) 2011-2013 Atalanta Systems Ltd
5
5
  # License: Apache License, Version 2.0
6
6
  #
7
7
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -1,7 +1,7 @@
1
1
  ################################################################################
2
2
  #
3
3
  # Author: Zachary Patten <zachary@jovelabs.com>
4
- # Copyright: Copyright (c) 2011-2012 Atalanta Systems Ltd
4
+ # Copyright: Copyright (c) 2011-2013 Atalanta Systems Ltd
5
5
  # License: Apache License, Version 2.0
6
6
  #
7
7
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -267,49 +267,47 @@ directory "create lxc configuration directory" do
267
267
  not_if { File.exists?("/etc/lxc") && File.directory?("/etc/lxc") }
268
268
  end
269
269
 
270
- =begin
271
- # load the chef client into our distro lxc cache
272
- install_chef_sh = "/tmp/install-chef.sh"
273
- distros = { "ubuntu" => [ "lucid", "maverick", "natty", "oneiric", "precise" ] }
274
- arch = (%x( arch ).include?("i686") ? "i386" : "amd64")
270
+ # # load the chef client into our distro lxc cache
271
+ # install_chef_sh = "/tmp/install-chef.sh"
272
+ # distros = { "ubuntu" => [ "lucid", "maverick", "natty", "oneiric", "precise" ] }
273
+ # arch = (%x( arch ).include?("i686") ? "i386" : "amd64")
275
274
 
276
- template "create lxc initializer container configuration" do
277
- path "/etc/lxc/initializer"
278
- source "lxc-initializer-config.erb"
275
+ # template "create lxc initializer container configuration" do
276
+ # path "/etc/lxc/initializer"
277
+ # source "lxc-initializer-config.erb"
279
278
 
280
- not_if { File.exists?("/etc/lxc/initializer") }
281
- end
279
+ # not_if { File.exists?("/etc/lxc/initializer") }
280
+ # end
282
281
 
283
- distros.each do |distro, releases|
284
- releases.each do |release|
285
- cache_rootfs = File.join("/", "var", "cache", "lxc", release, "rootfs-#{arch}")
286
- initializer_rootfs = File.join("/", "var", "lib", "lxc", "initializer", "rootfs")
282
+ # distros.each do |distro, releases|
283
+ # releases.each do |release|
284
+ # cache_rootfs = File.join("/", "var", "cache", "lxc", release, "rootfs-#{arch}")
285
+ # initializer_rootfs = File.join("/", "var", "lib", "lxc", "initializer", "rootfs")
287
286
 
288
- execute "create the lxc initializer container for #{distro}/#{release}" do
289
- command "lxc-create -n initializer -f /etc/lxc/initializer -t #{distro} -- -r #{release}"
287
+ # execute "create the lxc initializer container for #{distro}/#{release}" do
288
+ # command "lxc-create -n initializer -f /etc/lxc/initializer -t #{distro} -- -r #{release}"
290
289
 
291
- not_if { File.exists?(cache_rootfs) && File.directory?(cache_rootfs) }
292
- end
290
+ # not_if { File.exists?(cache_rootfs) && File.directory?(cache_rootfs) }
291
+ # end
293
292
 
294
- execute "destroy the lxc initializer container for #{distro}/#{release}" do
295
- command "lxc-destroy -n initializer"
293
+ # execute "destroy the lxc initializer container for #{distro}/#{release}" do
294
+ # command "lxc-destroy -n initializer"
296
295
 
297
- only_if { File.exists?(initializer_rootfs) && File.directory?(initializer_rootfs) }
298
- end
296
+ # only_if { File.exists?(initializer_rootfs) && File.directory?(initializer_rootfs) }
297
+ # end
299
298
 
300
- template "create opscode omnibus installer in lxc container cache for #{distro}/#{release}" do
301
- path "#{cache_rootfs}#{install_chef_sh}"
302
- source "lxc-install-chef.erb"
303
- mode "0755"
299
+ # template "create opscode omnibus installer in lxc container cache for #{distro}/#{release}" do
300
+ # path "#{cache_rootfs}#{install_chef_sh}"
301
+ # source "lxc-install-chef.erb"
302
+ # mode "0755"
304
303
 
305
- not_if { File.exists?(File.join(cache_rootfs, install_chef_sh)) }
306
- end
304
+ # not_if { File.exists?(File.join(cache_rootfs, install_chef_sh)) }
305
+ # end
307
306
 
308
- execute "install chef-client using omnibus in lxc container cache for #{distro}/#{release}" do
309
- command "chroot #{cache_rootfs} /bin/bash -c '#{install_chef_sh}'"
307
+ # execute "install chef-client using omnibus in lxc container cache for #{distro}/#{release}" do
308
+ # command "chroot #{cache_rootfs} /bin/bash -c '#{install_chef_sh}'"
310
309
 
311
- not_if { File.exists?(File.join(cache_rootfs, "opt", "opscode", "bin", "chef-client")) }
312
- end
313
- end
314
- end
315
- =end
310
+ # not_if { File.exists?(File.join(cache_rootfs, "opt", "opscode", "bin", "chef-client")) }
311
+ # end
312
+ # end
313
+ # end
@@ -1,7 +1,7 @@
1
1
  ################################################################################
2
2
  #
3
3
  # Author: Zachary Patten <zachary@jovelabs.com>
4
- # Copyright: Copyright (c) 2011-2012 Atalanta Systems Ltd
4
+ # Copyright: Copyright (c) 2011-2013 Atalanta Systems Ltd
5
5
  # License: Apache License, Version 2.0
6
6
  #
7
7
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -19,57 +19,14 @@
19
19
  ################################################################################
20
20
 
21
21
 
22
- %w( build-essential wget chkconfig ruby-full ruby-dev libxml2-dev libxslt1-dev ).each do |p|
23
- package p
24
- end
25
-
26
- bash "install rubygems" do
27
- code <<-EOH
28
- cd /tmp
29
- wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.19.tgz
30
- tar zxf rubygems-1.8.19.tgz
31
- cd rubygems-1.8.19
32
- ruby setup.rb --no-format-executable
33
- EOH
34
- end
35
-
36
- gem_package "cucumber-chef" do
37
- gem_binary("/usr/bin/gem")
38
-
39
- version(node['cucumber_chef']['version'])
40
-
41
- if node['cucumber_chef']['prerelease']
42
- options("--prerelease")
43
- end
44
- end
45
-
46
- %w( rspec ).each do |g|
47
- gem_package g do
48
- gem_binary("/usr/bin/gem")
49
- end
50
- end
51
-
52
22
  ################################################################################
53
- # CHEF-CLIENT
23
+ # SYSTEM TWEAKS
54
24
  ################################################################################
55
- service "chef-client"
56
25
 
57
- execute "set chef-client logging to debug" do
58
- command "sed -i \"s/log_level :info/log_level :debug/\" /etc/chef/client.rb"
59
-
60
- notifies :restart, "service[chef-client]"
61
-
62
- only_if do
63
- %x( cat /etc/chef/client.rb | grep "log_level :info" )
64
- ($? == 0)
65
- end
26
+ %w( build-essential wget chkconfig ruby-full ruby-dev libxml2-dev libxslt1-dev ).each do |p|
27
+ package p
66
28
  end
67
29
 
68
-
69
- ################################################################################
70
- # SYSTEM TWEAKS
71
- ################################################################################
72
-
73
30
  %w( root ubuntu ).each do |user|
74
31
  home_dir = (user == "root" ? "/#{user}" : "/home/#{user}")
75
32
 
@@ -146,3 +103,63 @@ template "install cucumber-chef motd" do
146
103
 
147
104
  not_if { File.exists?("/etc/motd") && !File.symlink?("/etc/motd") }
148
105
  end
106
+
107
+
108
+ ################################################################################
109
+ # RUBY
110
+ ################################################################################
111
+ bash "install rubygems" do
112
+ code <<-EOH
113
+ cd /tmp
114
+ wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.19.tgz
115
+ tar zxf rubygems-1.8.19.tgz
116
+ cd rubygems-1.8.19
117
+ ruby setup.rb --no-format-executable
118
+ EOH
119
+ end
120
+
121
+ gem_package "cucumber-chef" do
122
+ gem_binary("/usr/bin/gem")
123
+
124
+ version(node['cucumber_chef']['version'])
125
+
126
+ if node['cucumber_chef']['prerelease']
127
+ options("--prerelease")
128
+ end
129
+ end
130
+
131
+ %w( rspec ).each do |g|
132
+ gem_package g do
133
+ gem_binary("/usr/bin/gem")
134
+ end
135
+ end
136
+
137
+
138
+ ################################################################################
139
+ # CHEF-CLIENT
140
+ ################################################################################
141
+ service "chef-client"
142
+
143
+ execute "set chef-client logging to debug" do
144
+ command "sed -i \"s/log_level :info/log_level :debug/\" /etc/chef/client.rb"
145
+
146
+ notifies :restart, "service[chef-client]"
147
+
148
+ only_if do
149
+ %x( cat /etc/chef/client.rb | grep "log_level :info" )
150
+ ($? == 0)
151
+ end
152
+ end
153
+
154
+
155
+ ################################################################################
156
+ # CHEF-SOLR / APACHE SOLR
157
+ ################################################################################
158
+
159
+ template "install custom solr config" do
160
+ path "/var/lib/chef/solr/conf/solrconfig.xml"
161
+ source "solrconfig.erb"
162
+ owner "chef"
163
+ group "chef"
164
+ mode "0644"
165
+ end