Class: Kitchen::Provisioner::ChefInfra

Inherits:
ChefBase show all
Defined in:
lib/kitchen/provisioner/chef_infra.rb

Overview

Chef Zero provisioner.

Author:

Direct Known Subclasses

ChefTarget, ChefZero

Instance Attribute Summary

Attributes included from Configurable

#instance

Instance Method Summary collapse

Methods inherited from ChefBase

#check_license, #doctor, #init_command, #initialize, #install_command, #license_acceptance_id, #product_version

Methods inherited from Base

#call, #check_license, #cleanup_sandbox, #doctor, #init_command, #initialize, #install_command, kitchen_provisioner_api_version, #prepare_command, #sandbox_dirs, #sandbox_path

Methods included from Logging

#banner, #debug, #error, #fatal, #info, #warn

Methods included from Configurable

#[], #bourne_shell?, #calculate_path, #config_keys, #diagnose, #diagnose_plugin, #finalize_config!, included, #name, #powershell_shell?, #remote_path_join, #unix_os?, #verify_dependencies, #windows_os?

Methods inherited from Kitchen::Plugin::Base

no_parallel_for

Constructor Details

This class inherits a constructor from Kitchen::Provisioner::ChefBase

Instance Method Details

#create_sandboxObject

Creates a temporary directory on the local workstation into which provisioner related files and directories can be copied or created. The contents of this directory will be copied over to the instance before invoking the provisioner’s run command. After this method completes, it is expected that the contents of the sandbox is complete and ready for copy to the remote instance.

Note: any subclasses would be well advised to call super first when overriding this method, for example:

Examples:

overriding ‘#create_sandbox`


class MyProvisioner < Kitchen::Provisioner::Base
  def create_sandbox
    super
    # any further file copies, preparations, etc.
  end
end


48
49
50
51
52
# File 'lib/kitchen/provisioner/chef_infra.rb', line 48

def create_sandbox
  super
  prepare_validation_pem
  prepare_config_rb
end

#run_commandObject



54
55
56
57
58
# File 'lib/kitchen/provisioner/chef_infra.rb', line 54

def run_command
  cmd = "#{sudo(config[:chef_client_path])} --local-mode".tap { |str| str.insert(0, "& ") if powershell_shell? }

  chef_cmd(cmd)
end