Class BoxGrinder::FedoraPlugin
In: lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb
lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb
Parent: RPMBasedOSPlugin

Methods

Public Instance methods

[Source]

    # File lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb, line 23
23:     def after_init
24:       super
25:       register_supported_os('fedora', ["13", "14", "15", "16", "rawhide"])
26:       set_default_config_value('PAE',true)
27:     end

[Source]

    # File lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb, line 23
23:     def after_init
24:       super
25:       register_supported_os('fedora', ["13", "14", "15", "16", "rawhide"])
26:       set_default_config_value('PAE',true)
27:     end

issues.jboss.org/browse/BGBUILD-204

[Source]

     # File lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb, line 98
 98:     def change_runlevel(guestfs)
 99:       @log.debug "Changing runlevel to multi-user non-graphical..."
100:       guestfs.rm("/etc/systemd/system/default.target")
101:       guestfs.ln_sf("/lib/systemd/system/multi-user.target", "/etc/systemd/system/default.target")
102:       @log.debug "Runlevel changed."
103:     end

issues.jboss.org/browse/BGBUILD-204

[Source]

     # File lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb, line 98
 98:     def change_runlevel(guestfs)
 99:       @log.debug "Changing runlevel to multi-user non-graphical..."
100:       guestfs.rm("/etc/systemd/system/default.target")
101:       guestfs.ln_sf("/lib/systemd/system/multi-user.target", "/etc/systemd/system/default.target")
102:       @log.debug "Runlevel changed."
103:     end

[Source]

    # File lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb, line 91
91:     def disable_biosdevname(guestfs)
92:       @log.debug "Disabling biosdevname..."
93:       guestfs.sh('sed -i "s/kernel\(.*\)/kernel\1 biosdevname=0/g" /boot/grub/grub.conf') if guestfs.exists("/boot/grub/grub.conf") != 0
94:       @log.debug "Biosdevname disabled."
95:     end

[Source]

    # File lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb, line 91
91:     def disable_biosdevname(guestfs)
92:       @log.debug "Disabling biosdevname..."
93:       guestfs.sh('sed -i "s/kernel\(.*\)/kernel\1 biosdevname=0/g" /boot/grub/grub.conf') if guestfs.exists("/boot/grub/grub.conf") != 0
94:       @log.debug "Biosdevname disabled."
95:     end

issues.jboss.org/browse/BGBUILD-204

[Source]

     # File lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb, line 106
106:     def disable_netfs(guestfs)
107:       @log.debug "Disabling network filesystem mounting..."
108:       guestfs.sh("chkconfig netfs off")
109:       @log.debug "Network filesystem mounting disabled."
110:     end

issues.jboss.org/browse/BGBUILD-204

[Source]

     # File lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb, line 106
106:     def disable_netfs(guestfs)
107:       @log.debug "Disabling network filesystem mounting..."
108:       guestfs.sh("chkconfig netfs off")
109:       @log.debug "Network filesystem mounting disabled."
110:     end

[Source]

    # File lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb, line 29
29:     def execute(appliance_definition_file)
30:       normalize_packages(@appliance_config.packages)
31: 
32:       @repos = {}
33: 
34:       @plugin_info[:versions].each do |version|
35:         if version.match(/\d+/)
36:           @repos[version] = {
37:               "base" => {"mirrorlist" => "http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-#{version}&arch=#BASE_ARCH#"},
38:               "updates" => {"mirrorlist" => "http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f#{version}&arch=#BASE_ARCH#"}
39:           }
40:         else
41:           @repos[version] = {"base" => {"mirrorlist" => "http://mirrors.fedoraproject.org/mirrorlist?repo=#{version}&arch=#BASE_ARCH#"}}
42:         end
43:       end
44: 
45:       build_with_appliance_creator(appliance_definition_file, @repos) do |guestfs, guestfs_helper|
46:         if @appliance_config.os.version >= "15"
47:           disable_biosdevname(guestfs)
48:           # https://issues.jboss.org/browse/BGBUILD-298
49:           switch_to_grub2(guestfs, guestfs_helper) if @appliance_config.os.version >= "16"
50:           change_runlevel(guestfs)
51:           disable_netfs(guestfs)
52:           link_mtab(guestfs)
53:         end
54:       end
55:     end

[Source]

    # File lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb, line 29
29:     def execute(appliance_definition_file)
30:       normalize_packages(@appliance_config.packages)
31: 
32:       @repos = {}
33: 
34:       @plugin_info[:versions].each do |version|
35:         if version.match(/\d+/)
36:           @repos[version] = {
37:               "base" => {"mirrorlist" => "http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-#{version}&arch=#BASE_ARCH#"},
38:               "updates" => {"mirrorlist" => "http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f#{version}&arch=#BASE_ARCH#"}
39:           }
40:         else
41:           @repos[version] = {"base" => {"mirrorlist" => "http://mirrors.fedoraproject.org/mirrorlist?repo=#{version}&arch=#BASE_ARCH#"}}
42:         end
43:       end
44: 
45:       build_with_appliance_creator(appliance_definition_file, @repos) do |guestfs, guestfs_helper|
46:         if @appliance_config.os.version >= "15"
47:           disable_biosdevname(guestfs)
48:           # https://issues.jboss.org/browse/BGBUILD-298
49:           switch_to_grub2(guestfs, guestfs_helper) if @appliance_config.os.version >= "16"
50:           change_runlevel(guestfs)
51:           disable_netfs(guestfs)
52:           link_mtab(guestfs)
53:         end
54:       end
55:     end

issues.jboss.org/browse/BGBUILD-209

[Source]

     # File lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb, line 113
113:     def link_mtab(guestfs)
114:       @log.debug "Linking /etc/mtab to /proc/self/mounts..."
115:       guestfs.ln_sf("/proc/self/mounts", "/etc/mtab")
116:       @log.debug "/etc/mtab linked."
117:     end

issues.jboss.org/browse/BGBUILD-209

[Source]

     # File lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb, line 113
113:     def link_mtab(guestfs)
114:       @log.debug "Linking /etc/mtab to /proc/self/mounts..."
115:       guestfs.ln_sf("/proc/self/mounts", "/etc/mtab")
116:       @log.debug "/etc/mtab linked."
117:     end

[Source]

    # File lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb, line 57
57:     def normalize_packages(packages)
58:       # https://issues.jboss.org/browse/BGBUILD-89
59:       packages << '@core'
60:       packages << "system-config-firewall-base"
61:       packages << "dhclient"
62: 
63:       packages.delete('kernel')
64:       packages.delete('kernel-PAE')
65: 
66:       if @appliance_config.is64bit?
67:         packages << "kernel"
68:       else
69:         @plugin_config['PAE'] ? packages << "kernel-PAE" : packages << "kernel"
70:       end
71: 
72:       packages << "-grub2" if @appliance_config.os.version >= "16"
73:     end

[Source]

    # File lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb, line 57
57:     def normalize_packages(packages)
58:       # https://issues.jboss.org/browse/BGBUILD-89
59:       packages << '@core'
60:       packages << "system-config-firewall-base"
61:       packages << "dhclient"
62: 
63:       packages.delete('kernel')
64:       packages.delete('kernel-PAE')
65: 
66:       if @appliance_config.is64bit?
67:         packages << "kernel"
68:       else
69:         @plugin_config['PAE'] ? packages << "kernel-PAE" : packages << "kernel"
70:       end
71: 
72:       packages << "-grub2" if @appliance_config.os.version >= "16"
73:     end

Since Fedora 16 by default GRUB2 is used - we remove Legacy GRUB and use GRUB2 instead

issues.jboss.org/browse/BGBUILD-280

[Source]

    # File lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb, line 79
79:     def switch_to_grub2(guestfs, guestfs_helper)
80:       @log.debug "Switching to GRUB2..."
81:       guestfs_helper.sh("yum -y remove grub")
82:       guestfs_helper.sh("yum -y install grub2")
83:       # Disabling biosdevname in GRUB2
84:       guestfs.write("/etc/default/grub", "GRUB_CMDLINE_LINUX=\"quiet rhgb biosdevname=0\"\n") if guestfs.exists("/boot/grub2/grub.cfg") != 0
85:       # We are using only one disk, so this is save
86:       guestfs.sh("cd / && grub2-install --force #{guestfs.list_devices.first}")
87:       guestfs.sh("cd / && grub2-mkconfig -o /boot/grub2/grub.cfg")
88:       @log.debug "Using GRUB2 from now."
89:     end

Since Fedora 16 by default GRUB2 is used - we remove Legacy GRUB and use GRUB2 instead

issues.jboss.org/browse/BGBUILD-280

[Source]

    # File lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb, line 79
79:     def switch_to_grub2(guestfs, guestfs_helper)
80:       @log.debug "Switching to GRUB2..."
81:       guestfs_helper.sh("yum -y remove grub")
82:       guestfs_helper.sh("yum -y install grub2")
83:       # Disabling biosdevname in GRUB2
84:       guestfs.write("/etc/default/grub", "GRUB_CMDLINE_LINUX=\"quiet rhgb biosdevname=0\"\n") if guestfs.exists("/boot/grub2/grub.cfg") != 0
85:       # We are using only one disk, so this is save
86:       guestfs.sh("cd / && grub2-install --force #{guestfs.list_devices.first}")
87:       guestfs.sh("cd / && grub2-mkconfig -o /boot/grub2/grub.cfg")
88:       @log.debug "Using GRUB2 from now."
89:     end

[Validate]