Class: TestLab::Provisioner::Chef::RubyGemServer
- Inherits:
-
Object
- Object
- TestLab::Provisioner::Chef::RubyGemServer
- Defined in:
- lib/testlab/provisioners/chef/ruby_gem_server.rb
Overview
RubyGemServer Provisioner Class
Instance Method Summary collapse
-
#initialize(config = {}, ui = nil) ⇒ RubyGemServer
constructor
A new instance of RubyGemServer.
-
#on_container_provision(container) ⇒ Boolean
RubyGemServer: Container Provision.
Constructor Details
#initialize(config = {}, ui = nil) ⇒ RubyGemServer
Returns a new instance of RubyGemServer.
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/testlab/provisioners/chef/ruby_gem_server.rb', line 14 def initialize(config={}, ui=nil) @config = (config || Hash.new) @ui = (ui || TestLab.ui) @config[:chef] ||= Hash.new @config[:chef][:server] ||= Hash.new @config[:chef][:server][:version] ||= %(10.24.0) @config[:chef][:server][:server_url] ||= "https://127.0.0.1" @ui.logger.debug { "config(#{@config.inspect})" } end |
Instance Method Details
#on_container_provision(container) ⇒ Boolean
RubyGemServer: Container Provision
Renders the defined script to a temporary file on the target container and proceeds to execute said script as root via lxc-attach.
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/testlab/provisioners/chef/ruby_gem_server.rb', line 34 def on_container_provision(container) rubygemserver_template = File.join(TestLab::Provisioner.template_dir, 'chef', 'ruby_gem_server.erb') config = {}.merge!({ :server_name => container.ip, :chef_solo_attributes => build_chef_solo_attributes(container), :chef_validator => '/etc/chef/validation.pem', :chef_webui => '/etc/chef/webui.pem', :chef_admin => '/etc/chef/admin.pem', :default_password => "p@ssw01d", :local_user => ENV['USER'], :sudo_user => container.primary_user.username, :sudo_uid => container.primary_user.uid, :sudo_gid => container.primary_user.gid, :home_dir => container.primary_user.home_dir, :chef_gems => %w(chef chef-solr chef-expander chef-server-api chef-server-webui), :chef_services => %w(couchdb rabbitmq-server chef-solr chef-expander chef-server chef-server-webui apache2) }).merge!(@config) container.bootstrap(ZTK::Template.render(rubygemserver_template, config)) true end |