My kickstart for Fedora 37 VMs
I missed Fedora 35, so my last Fedora kickstart post was about Fedora 35. I'm still loading Xfce. Thankfully, there were extremely minimal changes required! It was just version numbers obviously, and I rearranged the package names and added xrandr
which is no longer included by default (probably due to the Wayland infection spreading).
The kickstart file
# File: /mnt/public/Support/Platforms/Fedora/fc37x-ks.cfg # Locations: # /mnt/public/Support/Platforms/Fedora/fc37x-ks.cfg # Author: bgstack15 # Startdate: 2017-08-16 # Title: Kickstart for Fedora 37 xfce for ipa.internal.com # Purpose: To provide an easy installation for VMs and other systems in the Internal network # History: # 2017-06 I learned how to use kickstart files for the RHCSA EX-200 exam # 2017-08-08 Added notifyemail to --extra-args # 2017-11-01 major revision to use local mirror # 2017-11-04 converted for building directly into an iso file # 2017-11-15 fedora 27 # 2018-05-05 fedora 28 # 2018-07-08 adjusted to use --network type=bridge,source=br0 instead of type=direct,source=eno1 # 2018-12-01 fedora 29 # 2019-05-05 fedora 30 # 2020-02-20 fedora 31 # 2020-05-05 fedora 32 # 2020-12-02 fedora 33 # 2021-05-04 fedora 34 # 2022-03-28 fedora 35 vm=fc37x-01a; sudo virsh destroy "${vm}"; sudo virsh undefine --remove-all-storage "${vm}";# 2022-12-08 Fedora 37 # Usage with virt-install: # vm=fc37x-01a ; time sudo virt-install -n "${vm}" --memory 2048 --vcpus=1 --os-variant=fedora32 --accelerate -v --disk path=/var/lib/libvirt/images/"${vm}".qcow2,size=30 -l /mnt/public/Support/SetupsBig/Linux/Fedora-Everything-netinst-x86_64-37-1.7.iso --initrd-inject=/mnt/public/Support/Platforms/Fedora/fc37x-ks.cfg --extra-args "inst.ks=file:/fc37x-ks.cfg SERVERNAME=${vm} NOTIFYEMAIL=bgstack15@gmail.com" --debug --network type=bridge,source=br0 --noautoconsole # vm=fc37x-01a; sudo virsh destroy "${vm}"; sudo virsh undefine --remove-all-storage "${vm}"; # Reference: # https://sysadmin.compxtreme.ro/automatically-set-the-hostname-during-kickstart-installation/ # /mnt/public/Support/Platforms/CentOS7/install-vm.txt #platform=x86, AMD64, or Intel EM64T #version=DEVEL # Install OS instead of upgrade #install # Keyboard layouts keyboard --vckeymap=us --xlayouts='' # Root password rootpw --plaintext plaintextexamplepw # my user user --groups=wheel --name=bgstack15-local --password=$6$.gh9u7vg2HDJPPX/scrubbedpasswdentrygoeshere --iscrypted --gecos="bgstack15-local" # System language lang en_US.UTF-8 # Firewall configuration firewall --enabled --ssh # Reboot after installation reboot # Network information #attempting to put it in the included ks file that accepts hostname from the virsh command. #network --bootproto=dhcp --device=eth0 --ipv6=auto --activate %include /tmp/network.ks # System timezone timezone America/New_York --utc # System authorization information #auth --useshadow --passalgo=sha512 # Use network installation instead of CDROM installation media url --url="https://www.example.com/mirror/fedora/linux/releases/37/Everything/x86_64/os/" # Use text mode install text # SELinux configuration selinux --enforcing # Prepare X to run at boot xconfig --startxonboot # Use all local repositories # Online repos repo --name=internalrpm --baseurl=https://www.example.com/internal/repo/rpm/ repo --name=fedora --baseurl=https://www.example.com/mirror/fedora/linux/releases/$releasever/Everything/$basearch/os/ repo --name=updates --baseurl=https://www.example.com/mirror/fedora/linux/updates/$releasever/Everything/$basearch/ repo --name=rpmfusion-free --baseurl=https://www.example.com/mirror/rpmfusion/free/fedora/releases/$releasever/Everything/$basearch/os/ repo --name=rpmfusion-free-updates --baseurl=https://www.example.com/mirror/rpmfusion/free/fedora/updates/$releasever/$basearch/ repo --name=copr-bgstack15-stackrpms --baseurl=https://www.example.com/mirror/copr-bgstack15-stackrpms/fedora-$releasever-$basearch/ repo --name=copr-bgstack15-aftermozilla --baseurl=https://download.copr.fedorainfracloud.org/results/bgstack15/AfterMozilla/fedora-$releasever-$basearch/ firstboot --disabled # System bootloader configuration bootloader --location=mbr # Partition clearing information clearpart --all --initlabel # Disk partitioning information autopart --type=lvm %pre echo "network --bootproto=dhcp --device=eth0 --ipv6=auto --activate --hostname renameme.ipa.internal.com" > /tmp/network.ks for x in $( cat /proc/cmdline ); do case $x in SERVERNAME*) eval $x echo "network --bootproto=dhcp --device=eth0 --ipv6=auto --activate --hostname ${SERVERNAME}.ipa.internal.com" > /tmp/network.ks ;; NOTIFYEMAIL*) eval $x echo "${NOTIFYEMAIL}" > /mnt/sysroot/root/notifyemail.txt ;; esac done cp -p /run/install/repo/ca-ipa.internal.com.crt /etc/pki/ca-trust/source/anchors/ 2>/dev/null || : wget http://www.example.com/internal/certs/ca-ipa.internal.com.crt -O /etc/pki/ca-trust/source/anchors/ca-ipa.internal-wget.com.crt || : update-ca-trust || : %end %post { set -x # Set temporary hostname #hostnamectl set-hostname renameme.ipa.internal.com; # Get local mirror root ca certificate wget http://www.example.com/internal/certs/ca-ipa.internal.com.crt -O /etc/pki/ca-trust/source/anchors/ca-ipa.internal.com.crt && update-ca-trust # Get local mirror repositories wget https://www.example.com/internal/repo/rpm/set-my-repos.sh --output-document /usr/local/sbin/set-my-repos.sh ; chmod +x /usr/local/sbin/set-my-scripts.sh ; sh -x /usr/local/sbin/set-my-repos.sh #dnf -y remove dnfdragora ; #dnf clean all ; #dnf update -y ; # Remove graphical boot and add serial console sed -i -r -e '/^GRUB_CMDLINE_LINUX=/{s/(\s*)(rhgb|quiet)\s*/\1/g;};' -e '/^GRUB_CMDLINE_LINUX=/{s/(\s*)\"$/ console=ttyS0 console=tty1\"/;}' /etc/default/grub grub2-mkconfig > /boot/grub2/grub.cfg systemctl enable sendmail.service && systemctl start sendmail.service # Send IP address to myself thisip="$( ifconfig 2>/dev/null | awk '/Bcast|broadcast/{print $2}' | tr -cd '[^0-9\.\n]' | head -n1 )" { echo "${SERVER} has IP ${thisip}." echo "system finished kickstart at $( date "+%Y-%m-%d %T" )"; } | $( find /usr/share/bgscripts/send.sh /usr/bin/send 2>/dev/null | head -n1 ) -f "root@$( hostname --fqdn )" \ -h -s "${SERVER} is ${thisip}" $( cat /root/notifyemail.txt 2>/dev/null ) # Ensure boot to runlevel 5 systemctl set-default graphical.target # fix the mkhomedir problem systemctl enable oddjobd.service && systemctl start oddjobd.service # Personal customizations mkdir -p /mnt/bgstack15 /mnt/public #su bgstack15-local -c "sudo /usr/share/bgconf/bgconf.py" tf=/etc/cron.d/01_init.cron touch "${tf}" ; chown root.root "${tf}" ; chmod 0600 "${tf}" cat <<-"EOFCRON" 1>"${tf}" @reboot root su bgstack15-local -c "sudo /usr/bin/bgconf.py" 1>/root/clone.log 2>&1 ; rm -f /etc/cron.d/01_init.cron 1>/dev/null 2>&1 ; systemctl restart lightdm 1>/dev/null 2>&1 ; EOFCRON } 2>&1 | tee -a /root/install.log %end %packages @core @^xfce-desktop-environment @xfce-apps @xfce-media autossh bc bgconf bgscripts bgscripts-core bind-utils cifs-utils cryptsetup -dnfdragora -dnfdragora-updater dosfstools expect -firefox firewalld freeipa-client git -gstreamer1-plugins-ugly* -hplip iotop librewolf lightdm-gtk locale-en_BS mailx man net-tools newmoon nfs-utils numix-icon-theme-circle p7zip parted plocate python3-policycoreutils qemu-guest-agent rpm-build rsync scite screen sendmail spice-vdagent strace sysstat tcpdump telnet -thunderbird vim vlc wget xdg-themes-stackrpms xfce4-whiskermenu-plugin xrandr %end
The set-my-repos.sh script is the same as in the fedora 35 link at the top of this post.
Comments