When building out a new kickstart server for CentOS 7.x/8, I vigorously ignored the cruft that had built up in the old one and started over. One useful improvement is handling the basic network configuration properly:
%pre --log=/tmp/pre.log --interpreter=/usr/bin/bash
DNS=10.201.0.2,10.201.0.3
IFACE=$(ip -4 -o a | awk '/scope global/{print $2}')
IPADDR=$(ip -4 -o a | awk '/scope global/{print $4}')
declare $(ipcalc $IPADDR -h -m -n)
cat << EOF > /tmp/network.cfg
network --onboot yes --device $IFACE --bootproto static --noipv6 --onboot=on --activate --nameserver=$DNS --hostname=$HOSTNAME --ip=${IPADDR%%/*} --netmask=$NETMASK --gateway=${NETWORK%%.0}.1
EOF
%end
%include /tmp/network.cfg
We use TXT records in DNS to automagically set static DHCP leases and
PXE config files, so that all we need for an unattended install of a
new server is the MAC address of the first NIC. This little snippet
tells Anaconda to hardcode that IP config so the server doesn’t depend
on DHCP after the install is done. This has saved our bacon many times
after power outages, because if your DHCP server doesn’t come back
quickly (or at all), dhclient
eventually gives up, and then you have
to touch everything by hand to get them back online.
To get the base install down to something simple, quick, and easy to
secure (~380 RPMs, minimal network services), I dusted off the Perl
script I wrote back in 2009 that does dependency analysis based on the
repodata files comps.xml
and primary.sqlite
. Still works pretty
well, actually.
I deeply regret that we had to bite the bullet and start using a systemd-based release. CentOS 6.x was just getting too long in the tooth for functionality, and then one day we suddenly needed to ship a new DNS/DHCP/NTP/mail server to a new office, and the only available hardware was a NUC too new to run 6.10. My feelings about systemd can be summed up with this Ace Ventura clip.
Markdown formatting and simple HTML accepted.
Sometimes you have to double-click to enter text in the form (interaction between Isso and Bootstrap?). Tab is more reliable.