University Computing Systems


Systems Administration - Linux Kickstart Installation Guide


The purpose of this document is to outline the UCS kickstart and linux setup
procedures.  Since kickstart is always being improved upon, this document will 
continue to evolve so as to reflect the changes made to the linux kickstart 
configuration.

This document is made up of the following sections:

Introduction to kickstart
Kickstarting a linux machine using the UCS kickstart
Files used by the UCS kickstart process
Kernel Upgrades


Introduction to kickstart

Just like Sun’s jumpstart which is used to automate the installations of Solaris machines, RedHat’s kickstart can be used for unintended installations of Linux machines. The kickstart process is made possible by Anaconda, The RedHat System Installer which allows installs to be either interactive or scripted (kickstart). All of the packages to be installed including layout of the system disk, and swap size, are configured inside of the kickstart configuration file, which by default is named ks.cfg, however, it is possible to change the name of this file. For details, see Files used by the UCS kickstart process. For a complete description of the kickstart process, see The official Red Hat kickstart documentation

Kickstarting a linux machine using the UCS kickstart

This section describes the process of kickstarting a UCS linux machine. The first step is to obtain the MAC address of the machine’s primary Network Interface Card. The easiest way of obtaining the MAC address is to use the standard UCS kickstart boot CD to boot into a holographic shell. First, insert the UCS kickstart CD into the CD-drive. At the prompt, type : desktop rescue The installer will begin to initialize the system and begin to load any needed device drivers, and a DHCP request will be sent for an IP address. Once an address is obtained, Anaconda will start rescue mode and a dialog box will be presented indicating that rescue mode is about to attempt to mount the current linux installation. On this screen, select Alt+F2 which will invoke a shell prompt. At the shell prompt type the following command : ifconfig eth0 The above command will display information for the primary network interface, eth0 including the MAC address. The MAC address is indicated as HWaddr. An alternative method is to boot the machine with a knoppix Live CD and issue an ’ifconfig eth0’ from a shell prompt. Once the MAC address has been obtained, it needs to be added to the maciptable. The maciptable is used by the kickstart post install scripts to configure the machine’s hostname and network information. The maciptable is also used to determine the kickstart group the machine belongs to. For more information on this file, see Files used by the UCS kickstart process The maciptable is : /afs/cad/linux/admin/install/maciptable The maciptable has the following format : MAC Address IP Address Gateway Group In addition to the MAC address, and IP, gateway and group information is also needed. It is important that the group be set to a valid kickstart group otherwise the kickstart process will not complete successfully. Valid kickstart groups are located in /afs/cad/linux/admin and begin with a "KS", e.g., KS.dms_faculty Currently, no script exists to create new kickstart groups. If a new group is desired, copy an existing group directory and modify it accordingly. After an entry has been added to the maciptable for the machine that is to be installed, a boot CD is required to initiate the kickstart process. A boot CD can be made from the UCS kickstart boot images which are located in AFS. The location for these images is : /afs/cad/linux/admin/install/BOOT/iso_boot_images The above directory contains images for both RHEL 3.0 and RHEL 4.0. There are also images for both x86 and x64 platforms for both RHEL versions. Choose the image that matches the platform and version of RHEL that is being installed. NOTE: It is possible to install RHEL x86 on an x64 platform, but the OS will not be able to take advantage of the 64-bit capabilities of the machine’s architecture. It is suggested to always install the 64-bit version of RHEL on machines that support it. After the proper boot image has been identified, the image should be burned to a CD. This document assumes the reader is already familiar with the process used to create CDs from ISO images and so the steps for creating a boot CD will not be covered in this document. After the boot CD has been created, the kickstart process can begin. The system should be connected to a DHCP port as the kickstart process uses DHCP for installation. The system can now be booted using the newly created boot CD. The boot process will load isolinux and display the UCS modified welcome screen. Pressing enter will install a desktop system, typing "server" (without quotes) will install a server based system. The distinction between a DESKTOP and SERVER relate to the number and type of packages which get installed. A server configuration does not install a windowing system. Also, additional services are disabled for servers. It is important to note that DESKTOP and SERVER do not refer to the various RedHat Enterprise distributions, but are based on the number of packages added to the system and on customizations which are done. For complete details on the different customizations done for DESKTOPS vs SERVERS, please see the group.customize.sh script. It is possible to create different profiles. Instead of using the generic UCS desktop or server profile, a custom profile containing a custom list of packages, disk partition layout, etc, may be used by issuing the following command at the installation prompt : desktop text ks=nfs:viridian:/jumpstart/linux/kickstart/profiles/PROFILENAME.cfg where PROFILENAME = the name of the profile you wish to use. Note: If the installer identifies more than one network card in the system, you will need to tell linux what card to use for installation. Always select the primary Network Interface Card (eth0) for the install process. If everything went OK, a message should soon appear that anaconda is starting. The machine should begin to identify hardware components such as video, hard disk and media controllers, and prepares the disks for installation. The disk partitions will be created and package installation will being. Once the installation is underway remember to remove the boot CD from the system’s CDROM drive; failure to remove the boot CD will result in the system cycling the install process. The installation time for new x64 machines is about an hour, which includes the time to update the machine with the latest patches. Older systems, can take up to two hours to complete the install process. After the installation has finished, the system should be connected to a network port where it can obtain a static network address and rebooted. If the installation process was successful, the system should come up with the address specified in the maciptable. At this point it is a good idea to CHANGE the root password.

Files used by the UCS kickstart process

This section attempts to describe the UCS kickstart mechanism and each of the files it depends on. This section provides only a brief summary of what each script’s purpose is, for an overall understanding of what each script does, please look at each individual script.
  • Kickstart Configuration File (ks.cfg) The ks.cfg file is the kickstart configuration file that is used by the kickstart installation process. This file can be named anything, but the standard naming convention in use for the UCS profiles used by the desktop and server configuration is as follows : rh<ver><type><plat>.cfg ver = version of RHEL, such as 3,4 or 5 type = either desktop, server or hpc (for warewulf clusters) plat = the platform is either x86 or 64 The first section of the kickstart configuration file describes the locale settings such as language, keyboard and timezone. There are also %pre and %post sections contained within the configuration file. The %pre section is used in all UCS kickstart configuration files to specify partition information for the system disk. The %post section is used to identify the system as either a DESKTOP or SERVER and then calls the ks-post_install script which is located on viridian in : /jumpstart/linux/kickstart/scripts The UCS profile files are located on viridian in : /jumpstart/linux/kickstart/profiles Please refer to the official Red Hat kickstart documentation for complete details and a more complete explanation on the ks.cfg (kickstart configuration file).
  • ks-post_install The system clock is synced with the hardware clock and then ks-post_install calls the AFS installation script : viridian:/jumpstart/linux/kickstart/scripts/install.afs.client.linux.ksh The ks-post-install script is located on viridian in : /jumpstart/linux/kickstart/scripts
  • linux-post-install This script makes customizations that are common to both DESKTOP and SERVER profiles. UCS staff and crontabs are also added via the linux-post-install script. System software such as SSH and sendmail are installed and configured. The following scripts are then called : - group.customize.sh - call.bootstrap.sh - linux-post-install-stage2 The group.customize.sh script makes customizations that are specific to both DESKTOP and SERVER installations. This script is described in more detail in the next section. The call.bootstrap.sh script is used to register the machine on the RHN and patch the system via up2date. It is located in : /afs/cad/linux/admin/install/scripts/KS More details on up2date are located in the section on Patching with up2date The linux-post-install script is located on viridian in : /jumpstart/linux/kickstart/scripts
  • group.customize.sh As stated in the previous section, this script is used to make specific customizations based on whether the machine is a DESKTOP or SERVER. For DESKTOP installations, the script makes modifications to the KDE desktop environment and creates the various terminal profiles for gnome-terminal. For SERVER installations, the script turns off unneeded services and enables console access on ttyS0 which is needed for concentrator access to the machine. Finally, /afs/cad/linux/scripts/KS/linux-post-install-stage2 is copied to /etc/rc.d/rc.local and the machine is rebooted. The group.customize.sh script is located in afs : /afs/cad/linux/admin/install/scripts/KS/group.customize.sh
  • linux-post-install-stage2 For DESKTOP systems, this script calls : /afs/cad/linux/admin/install/scripts/KS/install.display.sh which attempts to identify the display card and install the proprietary display driver. The install.display.sh script currently knows about Nvidia and a few ATI cards. The script then calls : /afs/cad/linux/admin/install/scripts/set.hostname.sh which sets the static hostname and IP address for the machine according to the one listed in the maciptable. Finally, finishup.sh is called.
  • finishup.sh This script removes temporary mount points and initiates a final reboot. The finishup.sh script is located in afs : /afs/cad/linux/admin/install/scripts/KS/finishup.sh

    Kernel Upgrades

    Before an updated linux kernel can be installed on any UCS linux system, a new AFS kernel module needs to be built against the updated kernel. Please see This Document for detailed instructions on how to build AFS kernel modules. Once the corresponding AFS kernel modules have been built, the updated kernel rpms should be placed in the following AFS directory : /afs/cad/linux/admin/install/<KERNEL>/<PLATFORM>/<RHEL_VERSION>/<KERNEL_VERSION> A symlink named CURRENT should be put in place which points to the KERNEL_VERSION which is to be used as the most current version. e.g., ln -s 2.6.9-42.0.10.EL CURRENT ls -l CURRENT lrwxr-xr-x 1 andym 30 16 2007-05-10 16:51 CURRENT -> 2.6.9-42.0.10.EL/ The update.kernel.sh script can then be used to perform the actual kernel update. The script will install the updated kernel along with updated kernel modules as well as a new kernel module for the Nvidia display driver. The update.kernel.sh script is called from call.bootstrap.sh which itself is called from the linux-post-install script. When calling the update.kernel.sh directly, i.e., on a machine which has already been installed, it is import to call the script with the -d switch, which will rebuild the kernel modules for the display driver. If -d is not specified, the windowing system will not be able to be started since the display driver will not be able to load.

    Patching with up2date

    During the kickstart process each system is registered on the RHN via the call.bootstrap.sh script. All UCS linux systems have the following line in root’s crontab : 05 2 * * * /afs/cad/linux/admin/bin/up2date.sh -u This script runs the up2date process and logs a report for each host.

  • Last updated: 5/14/2007