Class: PackerFiles::RHEL::Fedora

Inherits:
CentOS::Server show all
Defined in:
lib/PackerFiles/OS/RHEL/Fedora.rb

Instance Attribute Summary

Attributes inherited from Builder

#OutDir

Instance Method Summary collapse

Methods inherited from CentOS::Server

#disable_root_for_user, #enable_root_for_user, #generate_hook, #guest_os_type, #kvm_converter_hook, preseed_accessors, #run_command_as_root, #shutdown_command, #vbox_converter_hook, #vmware_converter_hook, #vmware_guest_os_flavor, #vmware_guest_os_type

Methods inherited from Builder

#Generate, #http_dir, #name, #packer_json_file, versions

Methods inherited from Utils::TypeAccessor

proc_from, type_accessor, type_accessors

Constructor Details

#initialize {|_self| ... } ⇒ Fedora

Constructor. Yield self for further initialization

Yields:

  • (_self)

Yield Parameters:



13
14
15
# File 'lib/PackerFiles/OS/RHEL/Fedora.rb', line 13

def initialize
	yield self if block_given?
end

Instance Method Details

#boot_commandObject

Boot Command hook for Fedora



50
51
52
53
54
55
# File 'lib/PackerFiles/OS/RHEL/Fedora.rb', line 50

def boot_command
   file  = PackerFiles.DirPath('RHEL/Templates/boot_command_fedora_erb.rb')
   hash  = { 'obj' => self, 'network' => self.Network }
   value = PackerFiles.evaluate_erb(file.first, hash)
   value.split("\n")
end

#cd_image_hookObject

Hook function called before normalizing CD Image



18
19
20
# File 'lib/PackerFiles/OS/RHEL/Fedora.rb', line 18

def cd_image_hook
	self.CDImage.impl = PackerFiles::Fedora::CD.new
end

#kickstart_fileObject

Name of the preseed file



42
43
44
45
46
47
# File 'lib/PackerFiles/OS/RHEL/Fedora.rb', line 42

def kickstart_file
   rel  = self.CDImage.release
   arch = self.CDImage.arch
   name = "kickstart-fedora-server-#{rel}-#{arch}.cfg"
	File.join(http_dir, name)
end

#kickstart_write_hook(objects) ⇒ Object

Hook for writing into preseed file.



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/PackerFiles/OS/RHEL/Fedora.rb', line 23

def kickstart_write_hook(objects)

	# Preseed file by evaluating templates @ Debian folder.
	kickstart = PackerFiles::CentOS::Kickstart.new(kickstart_file)

	# Evaluate Head 
	kickstart.eval_file('CentOS/Templates/Base_erb.rb', {})

   # Convert objects into Preseed configuration.
   objects.each do |obj|
	   kickstart.convert obj, 'CentOS/Templates'
   end

	# Evaluate tail
	kickstart.eval_file('RHEL/Templates/Fedora_Tail_erb.rb', {'obj' => self})

end