class PackerFiles::Provisioners

Attributes

list[RW]

List of registered provisioners

Public Class Methods

doc_file() click to toggle source

Documentation for this class

# File lib/PackerFiles/Provision/Provisioners.rb, line 12
def self.doc_file
   PackerFiles.DirPath('Provision/example/Provisioners.txt').first
end
new() { |self| ... } click to toggle source

Constructor just yields self for further initialization

# File lib/PackerFiles/Provision/Provisioners.rb, line 20
def initialize(&block)
   @list = []
   yield self if block_given?   
end

Public Instance Methods

ChefSolo(&block) click to toggle source

Enable Chef Solo Provisioner to be called multiple times with order preservation.

# File lib/PackerFiles/Provision/Provisioners.rb, line 45
def ChefSolo(&block)
   @list.push(Provision::ChefSolo.new(&block))
end
Copy(&block) click to toggle source

Enable File Copy Provisioner to be called multiple times with order preservation.

# File lib/PackerFiles/Provision/Provisioners.rb, line 27
def Copy(&block)
   @list.push(Provision::Copy.new(&block))
end
ExternalScript(&block) click to toggle source

Enable External Script Provisioner to be called multiple times with order preservation.

# File lib/PackerFiles/Provision/Provisioners.rb, line 39
def ExternalScript(&block)
   @list.push(Provision::ExternalScript.new(&block))
end
InlineScript(&block) click to toggle source

Enable Inline Script Provisioner to be called multiple times with order preservation.

# File lib/PackerFiles/Provision/Provisioners.rb, line 33
def InlineScript(&block)
   @list.push(Provision::InlineScript.new(&block))
end
convert(gen, os) click to toggle source

Convert self into Packer JSON format.

# File lib/PackerFiles/Provision/Provisioners.rb, line 50
def convert(gen, os)
   @list.unshift(EnableRootLoginScript(os))
   @list.push(DisableRootLoginScript(os))
   @list.compact.each do |prov|
      prov.os = os
      hash    = prov.to_hash(os)
      gen.provisioners.push(hash) if !hash.nil?
   end
end

Private Instance Methods

DisableRootLoginScript(os) click to toggle source

Create a inline script command to disable root logins

# File lib/PackerFiles/Provision/Provisioners.rb, line 75
def DisableRootLoginScript(os)
  cmd     = os.run_command_as_root
  disable = os.disable_root_for_user
  if !cmd.nil? && !disable.nil?
     return Provision::InlineScript.new do |script|
        script.execute_command = cmd
        script.inline          = disable
     end
  end
end
EnableRootLoginScript(os) click to toggle source

Create a inline script command to enable root logins

# File lib/PackerFiles/Provision/Provisioners.rb, line 62
def EnableRootLoginScript(os)
  cmd    = os.run_command_as_root
  enable = os.enable_root_for_user
  if !cmd.nil? && !enable.nil?
     return Provision::InlineScript.new do |script|
        script.execute_command = cmd
        script.inline          = enable
     end
  end
end