Kickstart f14 generic server.ks

From Alteeve Wiki
Jump to navigation Jump to search

 AN!Wiki :: Kickstart f14 generic server.ks

Below is a Fedora 14 x86_64 kickstart script suitable for PXE servers that is designed to for use on servers. It strips down the standard Fedora 14 package list to save space and minimize potential problems.

It also implements a rudimentary script that detects HP Proliant storage controllers, one or two old-style /dev/hdX drives and one through six /dev/sdX drives. When two drives are found, a software RAID level 1 array is made. When three or more drives are found, a software RAID level 5 array is made.

Updated: Nov. 07, 2010.

# Kickstart file created by Digimer
# Email:     digimer@alteeve.com
# Updated:   Nov. 07, 2010
# Based on:  Fedora 14
# Spin Name: AN!Cluster
# Spin Ver.: 0.2.003
# Note:      Generic server install (most user-apps removed)

### Setup values.
# Doing a full install.
install

# This is the web server with the installation image. For more information on
# setting up a PXE and web server, see: 
# - https://alteeve.com/index.php/Setting_Up_a_PXE_Server_in_Fedora
url --url=http://10.255.0.1/f14/x86_64/img/

# Set the language and keyboard to en_US, UTF-8. Adjust as needed.
lang en_US.UTF-8
keyboard us

# Set the timezone to Eastern Standard/Daylight Time. To get your preferred
# time zone, run 'tzselect'. When finished, looks for the line like:
# - Therefore TZ='America/Toronto' will be used.
# Take the value in "TZ='...'" and use it below.
timezone --utc America/Toronto

# This sets the (first) ethernet device. There is currently no way to map
# device names to physical interfaces. For this reason, I use DHCP for install
# and configure the network manually post-install.
network --device eth0 --bootproto dhcp --onboot yes --hostname generic.alteeve.com

# This is the root user's password, which is "initial". To change this, set the
# password you want for a user on an existing system. Once set, look in
# '/etc/shadow' for the line starting with the user name whom you set the
# password for. Here is an example for the user 'digimer':
# digimer:$6$YEoLNxHI$cu/673fGD/BPqfJ1RCd0F6ZRqHhkfbI6HPdy1YuKBoxA6AW7eyyWC2NmkQ/czP1dzXfBn5uJbdn/HR84i.WhO1:14896:0:99999:7:::
# The part to copy below falls between the first and second ':' character.
authconfig --enableshadow --enablemd5
rootpw --iscrypted $6$0riSEDMyCvHPdhCv$lvuhEOqU2yo9szCJHtAsVUK3maHyWlpZmVi6PCRkrOfifL/38J7SaGUopehv/rzwQvhqxNla/jPvD10uwuPY4/

# In a production system, you will likely want to enable a firewall and
# SELinux. Given that this script is likely to be used while learning though,
# I turn them both off to reduce potential problems. Please be sure to build a
# firewall (Shorewall is good) and to re-enable SELinux as final steps before
# going into production. This way you will be able to focus on resolving issues
# specific to firewalling and SELinux without wondering if problems are caused
# by the general configuration.
firewall --disabled
selinux --disabled

# Given how often I rebuild machines, I like to pre-define the initial user and
# thus skip 'firstboot' to save time.
firstboot --disable

# Setup the first user. I use 'iplink', the system name used by Interlink, the
# main company I contract for, with the same "initial" password. Please see the
# 'rootpw' option above for information on changing this to the password you
# prefer.
user --name=iplink --iscrypted --password=$6$0riSEDMyCvHPdhCv$lvuhEOqU2yo9szCJHtAsVUK3maHyWlpZmVi6PCRkrOfifL/38J7SaGUopehv/rzwQvhqxNla/jPvD10uwuPY4/

# Reboot after the install completes rather than waiting for the user to
# manually reboot.
reboot

# This runs a script (below) that generates the partitioning information
# depending on a rudamentary test for available storage devices.
%include /tmp/part-include

# These options allow me to disable and enable services. Given that we're
# building servers, I particularly like to replace 'NetworkManager' with the
# simpler, and more static, 'network' service. If you want to add additional
# services, seperate the service names with commans. (ie: foo,bar,baz).
services --disabled NetworkManager,iptables,iptables,ip6tables
services --enabled network

# This is the stripped down package list. Most "Desktop" applications are
# removed and some server-related groups and packages are added.
%packages
@admin-tools
@base
@core
@editors
@fonts
@gnome-desktop
@graphical-internet
@hardware-support
@online-docs
@sound-and-video
@system-tools
@text-internet
@base-x
system-config-network
mtools
iscsi-initiator-utils
gpgme
bridge-utils
jfsutils
hdparm
createrepo
lzop
radeontool
PackageKit-command-not-found
enca
ntpdate
xsel
fuse
virt-top
gdm
xfsprogs
-ModemManager
-NetworkManager
-NetworkManager-glib
-geoclue
-pywebkitgtk
-rhythbox
-webkitgtk
-brasero
-brasero-libs
-sound-juicer
-fetchmail
-totem
-totem-mozplugin
-totem-nautilus
-gstreamer-plugins-bad-free
-gnome-dvb-daemon
-gstreamer-plugins-base
-gnome-applets
-gstreamer-plugins-good
-gstreamer-python
-gstreamer-rtsp
-gnome-user-share
-httpd
-httpd-tools
-slv2
-jack-audio-connection-kit
-mobile-broadband-provider-info
-mutt
-procmail
-sendmail
-pulseaudio
-alsa-plugins-pulseaudio
-blueman
-bluez
-pulseaudio-module-bluetooth
-pulseaudio-utils
-samba-client
-samba-common
-samba-winbind-clients
-gvfs-smb
-libsmbclient
-schroedinger
-sox
-speex
-icedax
-libshout
-vorbis-tools
-xfce4-notifyd
-fedora-release-notes
-ccid
-coolkey
-unix2dos
-irda-utils
-wqy-zenhei-fonts
-lohit-assamese-fonts
-lohit-bengali-fonts
-lklug-fonts
-paratype-pt-sans-fonts
-kacst-book-fonts
-kacst-digital-fonts
-kacst-pen-fonts
-sil-abyssinica-fonts
-kacst-decorative-fonts
-jomolhari-fonts
-kacst-letter-fonts
-lohit-kannada-fonts
-khmeros-base-fonts
-paktype-tehreer-fonts
-kacst-titlel-fonts
-kacst-naskh-fonts
-vlgothic-fonts
-kacst-art-fonts
-kacst-poster-fonts
-lohit-gujarati-fonts
-paktype-naqsh-fonts
-thai-scalable-waree-fonts
-lohit-devanagari-fonts
-smc-meera-fonts
-kacst-office-fonts
-kacst-farsi-fonts
-kacst-one-fonts
-kacst-qurn-fonts
-lohit-telugu-fonts
-sil-padauk-fonts
-lohit-punjabi-fonts
-lohit-tamil-fonts
-kacst-title-fonts
-kacst-screen-fonts
-lohit-oriya-fonts
-cheese
-vinagre
-gok
-gnome-backgrounds
-compiz-gnome
-nautilus-sendto
-gnome-bluetooth
-deja-dup
-NetworkManager-pptp
-NetworkManager-openconnect
-NetworkManager-gnome
-gnote
-gnome-user-docs
-simple-scan
-gnome-games
-gnome-screensaver
-pulseaudio-module-x11
-gnome-pilot
-shotwell
-gvfs-gphoto2
-pulseaudio-module-gconf
-gnome-color-manager
-eog
-NetworkManager-openvpn
-NetworkManager-vpnc
-gdm-user-switch-applet
-mousetweaks
-brasero-nautilus
-caribou
-orca
-evolution
-empathy
-transmission-gtk
-evolution-help
-nspluginwrapper
-pino
-java-1.6.0-openjdk-plugin
-printer-filters
-ivtv-firmware
-openconnect
-NetworkManager-openconnect
-openldap-clients
-zisofs-tools
-BackupPC
-jigdo
-NetworkManager-openvpn
-NetworkManager-vpnc
-zsh
-bonnie++
-openswan
-system-config-printer
-setroubleshoot
-cups-pk-helper

### Script to setup partitions.
%pre --log=/tmp/ks-preinstall.log
 
#!/bin/sh

# Prepare the disks in the script below. It checks '/proc/partitions' to see
# what configuration to use.

### Some detection.
if grep -q "cciss/c0d0" /proc/partitions; then
	### No RAID is needed at the software level, it's managed by the controller.
cat >> /tmp/part-include <<END
zerombr
clearpart --linux --drives=cciss/c0d0
ignoredisk --only-use=cciss/c0d0
bootloader --location=mbr --driveorder=cciss/c0d0 --append=""

part     /boot --fstype ext3 --size=256   --asprimary
part     swap  --fstype swap --size=4096  --asprimary
part     /     --fstype ext3 --size=40960 --asprimary
END
elif grep -q "cciss/c1d0" /proc/partitions; then
	### No RAID is needed at the software level, it's managed by the controller.
cat >> /tmp/part-include <<END
zerombr
clearpart --linux --drives=cciss/c1d0
ignoredisk --only-use=cciss/c1d0
bootloader --location=mbr --driveorder=cciss/c1d0 --append=""

part     /boot --fstype ext3 --size=256   --asprimary
part     swap  --fstype swap --size=4096  --asprimary
part     /     --fstype ext3 --size=40960 --asprimary
END
elif grep -q hdb /proc/partitions; then
	### /dev/hdX RAID 1
cat >> /tmp/part-include <<END
zerombr
clearpart --all --initlabel --drives=hda,hdb
ignoredisk --only-use=hda,hdb
bootloader  --location=mbr --driveorder=hda,hdb

# /boot
part raid.01 --ondisk=sda --asprimary --size=256
part raid.02 --ondisk=sdb --asprimary --size=256
# /
part raid.11 --ondisk=sda --asprimary --size=40960
part raid.12 --ondisk=sdb --asprimary --size=40960
# <swap>
part raid.21 --ondisk=sda --asprimary --size=4096
part raid.22 --ondisk=sdb --asprimary --size=4096

# Format /boot and /.
raid /boot --fstype=ext3 --level=1 --device=md0 raid.01 raid.02
raid /     --fstype=ext3 --level=1 --device=md1 raid.11 raid.12
raid swap  --fstype=swap --level=1 --device=md2 raid.21 raid.22
END
elif grep -q hda /proc/partitions; then
	### /dev/hda single
cat >> /tmp/part-include <<END
zerombr
clearpart --linux --drives=hda
ignoredisk --only-use=hda
bootloader --location=mbr --driveorder=hda --append=""

part     /boot --fstype ext3 --size=256   --asprimary
part     swap  --fstype swap --size=4096  --asprimary
part     /     --fstype ext3 --size=40960 --asprimary
END
elif grep -q sdf /proc/partitions; then
	### /dev/sdX RAID - This should be the majority.
	# 6-Drive RAID 5 w/ 1 hot spare
cat >> /tmp/part-include <<END
zerombr
clearpart --all --initlabel --drives=sda,sdb,sdc,sdd,sde,sdf
ignoredisk --only-use=sda,sdb,sdc,sdd,sde,sdf
bootloader --location=mbr --driveorder=sda,sdb,sdc,sdd,sde,sdf --append=""

## This will create a 6-drive RAID 5 array.
# The '/boot' partition. A little nuts at 6x RAID 1 but meh, what else would I
# use the 256MB parts for?
part raid.01 --size=256 --ondisk=sda
part raid.02 --size=256 --ondisk=sdb
part raid.03 --size=256 --ondisk=sdc
part raid.04 --size=256 --ondisk=sdd
part raid.05 --size=256 --ondisk=sde
part raid.06 --size=256 --ondisk=sdf

# The swap partition. Set to RAID 5, so it's actually ~5GB. It's RAID'ed and
# not individual parts because a loss of swap can still brind down a system.
part raid.11 --size=1024 --ondisk=sda
part raid.12 --size=1024 --ondisk=sdb
part raid.13 --size=1024 --ondisk=sdc
part raid.14 --size=1024 --ondisk=sdd
part raid.15 --size=1024 --ondisk=sde
part raid.16 --size=1024 --ondisk=sdf

# This is the main '/' partition for 'dom0'. The remainder of the disk space
# will be hand-crafted into a RAID 5 partition post install for either DRBD or
# iSCSI.
part raid.21 --size=10240 --ondisk=sda
part raid.22 --size=10240 --ondisk=sdb
part raid.23 --size=10240 --ondisk=sdc
part raid.24 --size=10240 --ondisk=sdd
part raid.25 --size=10240 --ondisk=sde
part raid.26 --size=10240 --ondisk=sdf

# RAID configure.
raid /boot --fstype=ext3 --level=1 --spares=1 --device=md0 raid.01 raid.02 raid.03 raid.04 raid.05 raid.06
raid swap                --level=5 --spares=1 --device=md1 raid.11 raid.12 raid.13 raid.14 raid.15 raid.16
raid /     --fstype=ext4 --level=5 --spares=1 --device=md2 raid.21 raid.22 raid.23 raid.24 raid.25 raid.26
END
elif grep -q sde /proc/partitions; then
	### /dev/sdX RAID - This should be the majority.
	# 5-Drive RAID 5
cat >> /tmp/part-include <<END
zerombr
clearpart --all --initlabel --drives=sda,sdb,sdc,sdd,sde
ignoredisk --only-use=sda,sdb,sdc,sdd,sde
bootloader --location=mbr --driveorder=sda,sdb,sdc,sdd,sde --append=""


## This will create a 5-drive RAID 5 array.
# The '/boot' partition. A little nuts at 6x RAID 1 but meh, what else would I
# use the 256MB parts for?
part raid.01 --size=256 --ondisk=sda
part raid.02 --size=256 --ondisk=sdb
part raid.03 --size=256 --ondisk=sdc
part raid.04 --size=256 --ondisk=sdd
part raid.05 --size=256 --ondisk=sde

# The swap partition. Set to RAID 5, so it's actually ~5GB. It's RAID'ed and
# not individual parts because a loss of swap can still brind down a system.
part raid.11 --size=1024 --ondisk=sda
part raid.12 --size=1024 --ondisk=sdb
part raid.13 --size=1024 --ondisk=sdc
part raid.14 --size=1024 --ondisk=sdd
part raid.15 --size=1024 --ondisk=sde

# This is the main '/' partition for 'dom0'. The remainder of the disk space
# will be hand-crafted into a RAID 5 partition post install for either DRBD or
# iSCSI.
part raid.21 --size=10240 --ondisk=sda
part raid.22 --size=10240 --ondisk=sdb
part raid.23 --size=10240 --ondisk=sdc
part raid.24 --size=10240 --ondisk=sdd
part raid.25 --size=10240 --ondisk=sde

# RAID configure.
raid /boot --fstype=ext3 --level=1 --device=md0 raid.01 raid.02 raid.03 raid.04 raid.05
raid swap                --level=5 --device=md1 raid.11 raid.12 raid.13 raid.14 raid.15
raid /     --fstype=ext4 --level=5 --device=md2 raid.21 raid.22 raid.23 raid.24 raid.25
END
elif grep -q sdd /proc/partitions; then
	### /dev/sdX RAID - This should be the majority.
	# 4-Drive RAID 5
cat >> /tmp/part-include <<END
zerombr
clearpart --all --initlabel --drives=sda,sdb,sdc,sdd
ignoredisk --only-use=sda,sdb,sdc,sdd
bootloader --location=mbr --driveorder=sda,sdb,sdc,sdd --append=""

## This will create a 4-drive RAID 5 array.
# The '/boot' partition. A little nuts at 6x RAID 1 but meh, what else would I
# use the 256MB parts for?
part raid.01 --size=256 --ondisk=sda
part raid.02 --size=256 --ondisk=sdb
part raid.03 --size=256 --ondisk=sdc
part raid.04 --size=256 --ondisk=sdd

# The swap partition. Set to RAID 5, so it's actually ~8GB. It's RAID'ed and
# not individual parts because a loss of swap can still brind down a system.
part raid.11 --size=2048 --ondisk=sda
part raid.12 --size=2048 --ondisk=sdb
part raid.13 --size=2048 --ondisk=sdc
part raid.14 --size=2048 --ondisk=sdd

# This is the main '/' partition for 'dom0'. The remainder of the disk space
# will be hand-crafted into a RAID 5 partition post install for either DRBD or
# iSCSI.
part raid.21 --size=20480 --ondisk=sda
part raid.22 --size=20480 --ondisk=sdb
part raid.23 --size=20480 --ondisk=sdc
part raid.24 --size=20480 --ondisk=sdd

# RAID configure.
raid /boot --fstype=ext3 --level=1 --device=md0 raid.01 raid.02 raid.03 raid.04
raid swap                --level=5 --device=md1 raid.11 raid.12 raid.13 raid.14
raid /     --fstype=ext4 --level=5 --device=md2 raid.21 raid.22 raid.23 raid.24
END
elif grep -q sdc /proc/partitions; then
	### /dev/sdX RAID - This should be the majority.
	# 3-Drive RAID 5
cat >> /tmp/part-include <<END
zerombr
clearpart --all --initlabel --drives=sda,sdb,sdc
ignoredisk --only-use=sda,sdb,sdc
bootloader --location=mbr --driveorder=sda,sdb,sdc --append=""

## This will create a 3-drive RAID 5 array.
# The '/boot' partition. A little nuts at 6x RAID 1 but meh, what else would I
# use the 256MB parts for?
part raid.01 --size=256 --ondisk=sda
part raid.02 --size=256 --ondisk=sdb
part raid.03 --size=256 --ondisk=sdc

# The swap partition. Set to RAID 5, so it's actually ~4GB. It's RAID'ed and
# not individual parts because a loss of swap can still brind down a system.
part raid.11 --size=2048 --ondisk=sda
part raid.12 --size=2048 --ondisk=sdb
part raid.13 --size=2048 --ondisk=sdc

# This is the main '/' partition for 'dom0'. The remainder of the disk space
# will be hand-crafted into a RAID 5 partition post install for either DRBD or
# iSCSI.
part raid.21 --size=20480 --ondisk=sda
part raid.22 --size=20480 --ondisk=sdb
part raid.23 --size=20480 --ondisk=sdc

# RAID configure.
raid /boot --fstype=ext3 --level=1 --device=md0 raid.01 raid.02 raid.03
raid swap                --level=5 --device=md1 raid.11 raid.12 raid.13
raid /     --fstype=ext4 --level=5 --device=md2 raid.21 raid.22 raid.23
END
elif grep -q sdb /proc/partitions; then
	### /dev/sdX RAID - This should be the majority.
	# 2-Drive RAID 1
cat >> /tmp/part-include <<END
zerombr
clearpart --all --initlabel --drives=sda,sdb
ignoredisk --only-use=sda,sdb
bootloader  --location=mbr --driveorder=sda,sdb

# /boot
part raid.01 --ondisk=sda --asprimary --size=256
part raid.02 --ondisk=sdb --asprimary --size=256
# /
part raid.11 --ondisk=sda --asprimary --size=40960
part raid.12 --ondisk=sdb --asprimary --size=40960
# <swap>
part raid.21 --ondisk=sda --asprimary --size=4096
part raid.22 --ondisk=sdb --asprimary --size=4096

# Format /boot and /.
raid /boot --fstype=ext3 --level=1 --device=md0 raid.01 raid.02
raid /     --fstype=ext3 --level=1 --device=md1 raid.11 raid.12
raid swap  --fstype=swap --level=1 --device=md2 raid.21 raid.22
END
elif grep -q sda /proc/partitions; then
	### /dev/sda Single drive, or hardware RAID
cat >> /tmp/part-include <<END
zerombr
clearpart --linux --drives=sda
ignoredisk --only-use=sda
bootloader --location=mbr --driveorder=sda --append=""

part     /boot --fstype ext3 --size=256   --asprimary
part     swap  --fstype swap --size=4096  --asprimary
part     /     --fstype ext3 --size=40960 --asprimary
END
fi

%end

 

Any questions, feedback, advice, complaints or meanderings are welcome.
Alteeve's Niche! Enterprise Support:
Alteeve Support
Community Support
© Alteeve's Niche! Inc. 1997-2024   Anvil! "Intelligent Availability®" Platform
legal stuff: All info is provided "As-Is". Do not use anything here unless you are willing and able to take responsibility for your own actions.