Class: PackerFiles::CentOS::Server
- Inherits:
-
Builder
- Object
- Utils::TypeAccessor
- Builder
- PackerFiles::CentOS::Server
- Defined in:
- lib/PackerFiles/OS/CentOS/Server.rb
Direct Known Subclasses
Instance Attribute Summary
Attributes inherited from Builder
Class Method Summary collapse
-
.preseed_accessors ⇒ Object
List of type accessors used by this class that also gets converted to a preseed.
Instance Method Summary collapse
-
#boot_command ⇒ Object
Boot Command Override.
-
#cd_image_hook ⇒ Object
Hook function called before normalizing CD Image.
-
#disable_root_for_user ⇒ Object
Disable root user command w/o a password.
-
#enable_root_for_user ⇒ Object
Enable root user command w/o a password.
-
#generate_hook ⇒ Object
hook function for generation.
-
#guest_os_type ⇒ Object
Guest OS Type override.
-
#initialize {|_self| ... } ⇒ Server
constructor
Constructor.
-
#kickstart_file ⇒ Object
Name of the preseed file.
-
#kickstart_write_hook(objects) ⇒ Object
Hook for writing into preseed file.
-
#kvm_converter_hook(gen) ⇒ Object
Hook function called for converting this object into a hash for KVM.
-
#run_command_as_root ⇒ Object
Run any given command as root.
-
#shutdown_command ⇒ Object
Shutdown command Override.
-
#vbox_converter_hook(gen) ⇒ Object
Hook function called for converting this object into a hash for VirtualBox.
-
#vmware_converter_hook(gen) ⇒ Object
Hook function called for converting this object into a hash for VMWare.
-
#vmware_guest_os_flavor ⇒ Object
VMWare Guest Flavor override.
-
#vmware_guest_os_type ⇒ Object
VMWare Guest OS Type override.
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| ... } ⇒ Server
Constructor. Yield self for further initialization
39 40 41 |
# File 'lib/PackerFiles/OS/CentOS/Server.rb', line 39 def initialize yield self if block_given? end |
Class Method Details
.preseed_accessors ⇒ Object
List of type accessors used by this class that also gets converted to a preseed
26 27 28 29 30 31 |
# File 'lib/PackerFiles/OS/CentOS/Server.rb', line 26 def self.preseed_accessors [Core::Locale, Core::Keyboard, Core::TimeZone, Core::User, Core::Disk, Core::Network, Core::Packages ] end |
Instance Method Details
#boot_command ⇒ Object
Boot Command Override
112 113 114 115 116 117 |
# File 'lib/PackerFiles/OS/CentOS/Server.rb', line 112 def boot_command file = PackerFiles.DirPath('CentOS/Templates/boot_command_erb.rb') hash = { 'obj' => self, 'network' => self.Network } value = PackerFiles.evaluate_erb(file.first, hash) value.split("\n") end |
#cd_image_hook ⇒ Object
Hook function called before normalizing CD Image
62 63 64 |
# File 'lib/PackerFiles/OS/CentOS/Server.rb', line 62 def cd_image_hook self.CDImage.impl = CD.new end |
#disable_root_for_user ⇒ Object
Disable root user command w/o a password
161 162 163 164 165 166 |
# File 'lib/PackerFiles/OS/CentOS/Server.rb', line 161 def disable_root_for_user file = PackerFiles.DirPath('CentOS/Templates/disable_root_erb.rb') hash = { 'obj' => self } value = PackerFiles.evaluate_erb(file.first, hash) value.chop end |
#enable_root_for_user ⇒ Object
Enable root user command w/o a password
153 154 155 156 157 158 |
# File 'lib/PackerFiles/OS/CentOS/Server.rb', line 153 def enable_root_for_user file = PackerFiles.DirPath('CentOS/Templates/enable_root_erb.rb') hash = { 'obj' => self } value = PackerFiles.evaluate_erb(file.first, hash) value.chop end |
#generate_hook ⇒ Object
hook function for generation
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/PackerFiles/OS/CentOS/Server.rb', line 44 def generate_hook # Construct objects that needs to be converted by using accessors. # The tracker type_accessors tracks the mapping b/w Type names and # method calls. objects = [] objects.push self.Locale, self.Keyboard, self.TimeZone, self.User objects.push self.Disk, self.Network, self.Packages objects.each do |obj| obj.normalize end # Call a hook function to customize kickstart generation by # derived classes. kickstart_write_hook(objects) end |
#guest_os_type ⇒ Object
Guest OS Type override
128 129 130 131 |
# File 'lib/PackerFiles/OS/CentOS/Server.rb', line 128 def guest_os_type return "RedHat_64" if (self.CDImage.arch == "x86_64") return "RedHat" end |
#kickstart_file ⇒ Object
Name of the preseed file
104 105 106 107 108 109 |
# File 'lib/PackerFiles/OS/CentOS/Server.rb', line 104 def kickstart_file rel = self.CDImage.release arch = self.CDImage.arch name = "kickstart-centos-server-#{rel}-#{arch}.cfg" File.join(http_dir, name) end |
#kickstart_write_hook(objects) ⇒ Object
Hook for writing into preseed file.
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/PackerFiles/OS/CentOS/Server.rb', line 85 def kickstart_write_hook(objects) # Preseed file by evaluating templates @ Debian folder. kickstart = 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('CentOS/Templates/Tail_erb.rb', {'obj' => self}) end |
#kvm_converter_hook(gen) ⇒ Object
Hook function called for converting this object into a hash for KVM
74 75 76 |
# File 'lib/PackerFiles/OS/CentOS/Server.rb', line 74 def kvm_converter_hook(gen) Virtual::KVMConverter.new(self, gen).value end |
#run_command_as_root ⇒ Object
Run any given command as root
145 146 147 148 149 150 |
# File 'lib/PackerFiles/OS/CentOS/Server.rb', line 145 def run_command_as_root file = PackerFiles.DirPath('CentOS/Templates/command_as_root_erb.rb') hash = { 'obj' => self } value = PackerFiles.evaluate_erb(file.first, hash) value.chop end |
#shutdown_command ⇒ Object
Shutdown command Override
120 121 122 123 124 125 |
# File 'lib/PackerFiles/OS/CentOS/Server.rb', line 120 def shutdown_command file = PackerFiles.DirPath('CentOS/Templates/shutdown_command_erb.rb') hash = { 'obj' => self.User } value = PackerFiles.evaluate_erb(file.first, hash) value.chop end |
#vbox_converter_hook(gen) ⇒ Object
Hook function called for converting this object into a hash for VirtualBox
68 69 70 |
# File 'lib/PackerFiles/OS/CentOS/Server.rb', line 68 def vbox_converter_hook(gen) Virtual::VirtualBoxConverter.new(self, gen).value end |
#vmware_converter_hook(gen) ⇒ Object
Hook function called for converting this object into a hash for VMWare
80 81 82 |
# File 'lib/PackerFiles/OS/CentOS/Server.rb', line 80 def vmware_converter_hook(gen) Virtual::VMWareConverter.new(self, gen).value end |
#vmware_guest_os_flavor ⇒ Object
VMWare Guest Flavor override
140 141 142 |
# File 'lib/PackerFiles/OS/CentOS/Server.rb', line 140 def vmware_guest_os_flavor return "linux" end |
#vmware_guest_os_type ⇒ Object
VMWare Guest OS Type override
134 135 136 137 |
# File 'lib/PackerFiles/OS/CentOS/Server.rb', line 134 def vmware_guest_os_type return "rhel4-64" if (self.CDImage.arch == "x86_64") return "rhel4" end |