Hello,
foreman discovery image is still based on EL7, but if you want to try to build it on EL8 feel free to do so and give us a feedback. Here is a tutorial:
Checkout the repository and run ./build-livecd fdi-centos7.ks
. Then edit the generated fdi-image.ks
as follows.
Change the following lines:
network --bootproto=dhcp
url --mirrorlist=http://mirrorlist.centos.org/?release=8&arch=$basearch&repo=baseos
repo --name="AppStream" --mirrorlist=http://mirrorlist.centos.org/?release=8&arch=$basearch&repo=appstream
repo --name="epel8" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=epel-8&arch=x86_64
repo --name="foreman-el8" --baseurl=http://yum.theforeman.org/releases/nightly/el8/$basearch/
repo --name="foreman-plugins-el8" --baseurl=http://yum.theforeman.org/plugins/nightly/el8/$basearch/
module --name=ruby --stream=2.7
clearpart --all --initlabel
part / --fstype="ext4" --size=4000
shutdown
Remove the following lines:
#auth --useshadow --enablemd5
#rm -rf /boot*
Add the following packages to the %packages
section:
syslinux-nonlinux
dracut-live
centos-logos # or fedora-logos
memtest86+
rubygem-facter
Remove the following lines in the same section:
#-fedora-logos
#-centos-logos
OpenIPMI-tools
acpid
bind-utils
isomd5sum
tcpdump
tfm-rubygem-facter
tftp
uuid
Remove tfm-
prefix from the following files:
root/usr/bin/discovery-menu
1:#!/usr/bin/tfm-ruby
root/usr/bin/discovery-register
1:#!/usr/bin/tfm-ruby
root/usr/share/fdi/facts/ethtool.rb
7:# $ FACTERLIB=/usr/share/fdi/facts tfm-ruby /opt/theforeman/tfm/root/usr/bin/facter
Install lorax
, download a CentOS DVD installation ISO and generate the FDI ISO:
livemedia-creator --ks fdi-image.ks --make-iso --nomacboot --iso CentOS-8.3.2011-x86_64-dvd1.iso
A new directory will be created:
# find /var/tmp/lmc-work-nirl6e1u
/var/tmp/lmc-work-nirl6e1u
/var/tmp/lmc-work-nirl6e1u/images
/var/tmp/lmc-work-nirl6e1u/images/install.img
/var/tmp/lmc-work-nirl6e1u/images/pxeboot
/var/tmp/lmc-work-nirl6e1u/images/pxeboot/vmlinuz
/var/tmp/lmc-work-nirl6e1u/images/pxeboot/initrd.img
/var/tmp/lmc-work-nirl6e1u/images/efiboot.img
/var/tmp/lmc-work-nirl6e1u/images/boot.iso
/var/tmp/lmc-work-nirl6e1u/LiveOS
/var/tmp/lmc-work-nirl6e1u/LiveOS/squashfs.img
/var/tmp/lmc-work-nirl6e1u/isolinux
/var/tmp/lmc-work-nirl6e1u/isolinux/isolinux.bin
/var/tmp/lmc-work-nirl6e1u/isolinux/vesamenu.c32
/var/tmp/lmc-work-nirl6e1u/isolinux/ldlinux.c32
/var/tmp/lmc-work-nirl6e1u/isolinux/libcom32.c32
/var/tmp/lmc-work-nirl6e1u/isolinux/libutil.c32
/var/tmp/lmc-work-nirl6e1u/isolinux/splash.png
/var/tmp/lmc-work-nirl6e1u/isolinux/memtest
/var/tmp/lmc-work-nirl6e1u/isolinux/grub.conf
/var/tmp/lmc-work-nirl6e1u/isolinux/boot.msg
/var/tmp/lmc-work-nirl6e1u/isolinux/isolinux.cfg
/var/tmp/lmc-work-nirl6e1u/isolinux/vmlinuz
/var/tmp/lmc-work-nirl6e1u/isolinux/initrd.img
/var/tmp/lmc-work-nirl6e1u/EFI
/var/tmp/lmc-work-nirl6e1u/EFI/BOOT
/var/tmp/lmc-work-nirl6e1u/EFI/BOOT/fonts
/var/tmp/lmc-work-nirl6e1u/EFI/BOOT/fonts/unicode.pf2
/var/tmp/lmc-work-nirl6e1u/EFI/BOOT/BOOTX64.EFI
/var/tmp/lmc-work-nirl6e1u/EFI/BOOT/mmx64.efi
/var/tmp/lmc-work-nirl6e1u/EFI/BOOT/grubx64.efi
/var/tmp/lmc-work-nirl6e1u/EFI/BOOT/grub.cfg
/var/tmp/lmc-work-nirl6e1u/LICENSE
The FDI is named boot.iso
.
Before upgrading the official build process, I’d like to explore building discovery as a dracut module, I already have a prototype and I think it could be the same amount of work to do this instead if we simply drop the TUI and rewrite proxy API and discovery script from Ruby to something light.
Please share your experience with FDI on EL8. Thanks.