Class: PackerFiles::CentOS::Server

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

Direct Known Subclasses

RHEL::Fedora, RHEL::Server

Instance Attribute Summary

Attributes inherited from Builder

#OutDir

Class Method Summary collapse

Instance Method Summary collapse

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

Yields:

  • (_self)

Yield Parameters:



39
40
41
# File 'lib/PackerFiles/OS/CentOS/Server.rb', line 39

def initialize
  yield self if block_given?
end

Class Method Details

.preseed_accessorsObject

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_commandObject

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_hookObject

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_userObject

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_userObject

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_hookObject

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_typeObject

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_fileObject

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_rootObject

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_commandObject

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_flavorObject

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_typeObject

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