Class | BoxGrinder::FedoraPlugin |
In: |
lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb
lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb |
Parent: | RPMBasedOSPlugin |
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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