class Packer::Provisioner

Constants

ANSIBLE
CHEF_CLIENT
CHEF_SOLO
FILE
POWERSHELL
PUPPET_MASTERLESS
PUPPET_SERVER
SALT
SHELL
VALID_PROVISIONER_TYPES
WINDOWS_RESTART
WINDOWS_SHELL

Public Class Methods

get_provisioner(type) click to toggle source
# File lib/packer/provisioner.rb, line 36
def self.get_provisioner(type)
  unless validate_type(type)
    raise UnrecognizedProvisionerTypeError.new("Unrecognized provisioner type #{type}")
  end

  {
    SHELL             => Packer::Provisioner::Shell,
    WINDOWS_SHELL     => Packer::Provisioner::WindowsShell,
    POWERSHELL        => Packer::Provisioner::Powershell,
    FILE              => Packer::Provisioner::File,
    SALT              => Packer::Provisioner::Salt,
    ANSIBLE           => Packer::Provisioner::Ansible,
    CHEF_CLIENT       => Packer::Provisioner::Chef::Client,
    CHEF_SOLO         => Packer::Provisioner::Chef::Solo,
    PUPPET_MASTERLESS => Packer::Provisioner::Puppet::Masterless,
    PUPPET_SERVER     => Packer::Provisioner::Puppet::Server,
    WINDOWS_RESTART   => Packer::Provisioner::WindowsRestart
  }.fetch(type).new
end
new() click to toggle source
Calls superclass method Packer::DataObject::new
# File lib/packer/provisioner.rb, line 60
def initialize
  super
  self.add_required('type')
end
types() click to toggle source
# File lib/packer/provisioner.rb, line 56
def self.types
  VALID_PROVISIONER_TYPES
end

Private Class Methods

validate_type(type) click to toggle source
# File lib/packer/provisioner.rb, line 96
def self.validate_type(type)
  VALID_PROVISIONER_TYPES.include? type
end

Public Instance Methods

except(buildname) click to toggle source
# File lib/packer/provisioner.rb, line 72
def except(buildname)
  unless self.data.key? 'except'
    self.data['except'] = []
  end
  self.data['except'] << buildname.to_s
end
only(buildname) click to toggle source
# File lib/packer/provisioner.rb, line 65
def only(buildname)
  unless self.data.key? 'only'
    self.data['only'] = []
  end
  self.data['only'] << buildname.to_s
end
override(builddefinition, values) click to toggle source
# File lib/packer/provisioner.rb, line 83
def override(builddefinition, values)
  raise TypeError.new() unless values.is_a?(Hash)

  unless self.data.key? 'override'
    self.data['override'] = {}
  end
  if self.data.key? @data['override'][builddefinition]
    self.data['override'][builddefinition].merge! values
  else
    self.data['override'][builddefinition] = values
  end
end
pause_before(duration) click to toggle source
# File lib/packer/provisioner.rb, line 79
def pause_before(duration)
  self.data["pause_before"] = duration.to_s
end