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