Class: BoxGrinder::FedoraPlugin
Constant Summary
collapse
- SUPPORTED_VERSIONS =
["13", "14", "15", "16", "17", "rawhide"]
Instance Attribute Summary
Attributes inherited from BasePlugin
#deliverables, #plugin_info
Instance Method Summary
collapse
#add_repos, #apply_root_password, #build_with_appliance_creator, #change_configuration, #cleanup_after_appliance_creator, #disable_firewall, #execute_appliance_creator, #execute_post, #install_files, #install_repos, #recreate_kernel_image, #recreate_rpm_database, #set_label_for_swap_partitions, #set_motd, #substitute_vars, #use_labels_for_partitions
Methods inherited from BasePlugin
#current_platform, #deliverables_exists?, #init, #initialize, #is_supported_os?, #is_supported_platform?, #merge_plugin_config, #read_plugin_config, #register_deliverable, #register_supported_os, #register_supported_platform, #run, #set_default_config_value, #subtype, #supported_oses, #validate_plugin_config
Methods included from Plugins
#plugin
Instance Method Details
#after_init ⇒ Object
31
32
33
34
35
|
# File 'lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb', line 31
def after_init
super
register_supported_os('fedora', SUPPORTED_VERSIONS)
set_default_config_value('PAE', true)
end
|
#change_runlevel(guestfs) ⇒ Object
96
97
98
99
100
101
|
# File 'lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb', line 96
def change_runlevel(guestfs)
@log.debug "Changing runlevel to multi-user non-graphical..."
guestfs.rm("/etc/systemd/system/default.target")
guestfs.ln_sf("/lib/systemd/system/multi-user.target", "/etc/systemd/system/default.target")
@log.debug "Runlevel changed."
end
|
#disable_biosdevname(guestfs) ⇒ Object
85
86
87
88
89
90
91
92
93
|
# File 'lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb', line 85
def disable_biosdevname(guestfs)
@log.debug "Disabling biosdevname..."
if guestfs.exists("/boot/grub2/grub.cfg") != 0
guestfs.write("/etc/default/grub", "GRUB_CMDLINE_LINUX=\"quiet rhgb biosdevname=0\"\n")
guestfs.sh("cd / && grub2-mkconfig -o /boot/grub2/grub.cfg")
end
guestfs.sh('sed -i "s/kernel\(.*\)/kernel\1 biosdevname=0/g" /boot/grub/grub.conf') if guestfs.exists("/boot/grub/grub.conf") != 0
@log.debug "Biosdevname disabled."
end
|
#disable_netfs(guestfs) ⇒ Object
104
105
106
107
108
|
# File 'lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb', line 104
def disable_netfs(guestfs)
@log.debug "Disabling network filesystem mounting..."
guestfs.sh("chkconfig netfs off")
@log.debug "Network filesystem mounting disabled."
end
|
#execute(appliance_definition_file) ⇒ Object
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# File 'lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb', line 37
def execute(appliance_definition_file)
normalize_packages(@appliance_config.packages)
@repos = {}
@plugin_info[:versions].each do |version|
if version.match(/\d+/)
@repos[version] = {
"base" => {"mirrorlist" => "http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-#{version}&arch=#BASE_ARCH#"},
"updates" => {"mirrorlist" => "http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f#{version}&arch=#BASE_ARCH#"}
}
else
@repos[version] = {"base" => {"mirrorlist" => "http://mirrors.fedoraproject.org/mirrorlist?repo=#{version}&arch=#BASE_ARCH#"}}
end
end
build_with_appliance_creator(appliance_definition_file, @repos) do |guestfs, guestfs_helper|
if @appliance_config.os.version >= "15"
disable_biosdevname(guestfs)
change_runlevel(guestfs)
disable_netfs(guestfs) if @appliance_config.os.version < "17"
link_mtab(guestfs)
end
end
end
|
#link_mtab(guestfs) ⇒ Object
111
112
113
114
115
|
# File 'lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb', line 111
def link_mtab(guestfs)
@log.debug "Linking /etc/mtab to /proc/self/mounts..."
guestfs.ln_sf("/proc/self/mounts", "/etc/mtab")
@log.debug "/etc/mtab linked."
end
|
#normalize_packages(packages) ⇒ Object
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
# File 'lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb', line 63
def normalize_packages(packages)
packages << '@core'
packages << "system-config-firewall-base"
packages << "dhclient"
packages.delete('kernel')
packages.delete('kernel-PAE')
if @appliance_config.is64bit?
packages << "kernel"
else
@plugin_config['PAE'] ? packages << "kernel-PAE" : packages << "kernel"
end
if @appliance_config.os.version >= "16"
packages << "grub2"
else
packages << "grub"
end
end
|