Class: TestLab::Provisioner::Chef::OmniTruck
- Inherits:
-
Object
- Object
- TestLab::Provisioner::Chef::OmniTruck
- Defined in:
- lib/testlab/provisioners/chef/omni_truck.rb
Overview
OmniTruck Provisioner Class
Instance Method Summary collapse
-
#initialize(config = {}, ui = nil) ⇒ OmniTruck
constructor
A new instance of OmniTruck.
-
#on_container_provision(container) ⇒ Boolean
OmniTruck: Container Provision.
Constructor Details
#initialize(config = {}, ui = nil) ⇒ OmniTruck
Returns a new instance of OmniTruck.
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/testlab/provisioners/chef/omni_truck.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] ||= %(latest) @config[:chef][:server][:prereleases] ||= false @config[:chef][:server][:nightlies] ||= false @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
OmniTruck: 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.
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/omni_truck.rb', line 36 def on_container_provision(container) omnitruck_template = File.join(TestLab::Provisioner::Chef.template_dir, 'omni_truck.erb') config = {}.merge!({ :server_name => container.ip, :chef_solo_attributes => build_omni_truck_attributes(container), :chef_validator => '/etc/chef-server/chef-validator.pem', :chef_webui => '/etc/chef-server/chef-webui.pem', :chef_admin => '/etc/chef-server/admin.pem', :local_user => ENV['USER'], :default_password => "p@ssw01d", :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 }).merge!(@config) container.bootstrap(ZTK::Template.render(omnitruck_template, config)) true end |