|
# File: /mnt/public/Support/Platforms/Fedora/fc39x-ks.cfg
|
|
# Locations:
|
|
# /mnt/public/Support/Platforms/Fedora/fc39x-ks.cfg
|
|
# Author: bgstack15
|
|
# Startdate: 2017-08-16
|
|
# Title: Kickstart for Fedora 39 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
|
|
# 2022-12-08 Fedora 37
|
|
# 2023-12-09 Fedora 39
|
|
# Usage with virt-install:
|
|
# vm=fc39x-01a ; time sudo virt-install -n "${vm}" --memory 2048 --vcpus=2 --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-39-1.5.iso --initrd-inject=/mnt/public/Support/Platforms/Fedora/fc39x-ks.cfg --extra-args "inst.ks=file:/fc39x-ks.cfg SERVERNAME=${vm} NOTIFYEMAIL=bgstack15@gmail.com" --debug --network type=bridge,source=br0 --noautoconsole
|
|
# vm=fc39x-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/$g3X1l.q75fs7iEXAMPLE1F2EIo1YSGGj/1DGeUzzEXAMPLEh4of6iNYWyxws/EXAMPLEgETqOsYFI5XNrkaUe. --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/39/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://www.example.com/mirror/copr-bgstack15-aftermozilla/fedora-$releasever-$basearch/
|
|
repo --name=fedora-cisco-openh264 --baseurl=https://www.example.com/mirror/fedora-cisco-openh264/$releasever/$basearch/os/
|
|
|
|
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-repos.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
|
Comments