Beyond this, when an administrator needs to setup several Linux systems, Kickstart can provide a relatively easy way to accomplish mass. Download Your Free eBooks NOW – 10 Free Linux eBooks for Administrators | 4 Free Multiple RHEL/CemtOS 7 Installation using Kickstart. The Red Hat Kickstart installation method is used primarily (but not exclusively) by the Red Hat Enterprise Linux operating system to automatically perform.
|Published (Last):||16 November 2005|
|PDF File Size:||12.94 Mb|
|ePub File Size:||2.21 Mb|
|Price:||Free* [*Free Regsitration Required]|
We also need to install operating systems on new boxes fairly often.
All of these installations can be time-consuming, so we were tasked with creating a locally available kickstart server for Red Hat Enterprise Linux 5. As we started to delve into the requirements for creating a kickstart server we discovered kickstagt, although much kicostart the information required to do so is available from various places on the Internet, some necessary information is very difficult to find.
This article will concentrate on the specific configuration details required for an unattended network Kickstart of Red Hat Enterprise Linux 5.
Kickstart Tools Introduction
It is intended to cover all aspects of setting up a Kickstart server, including some information that is insyallation readily available. The basic function of a kickstart server is to allow an administrator to perform a network installation of Linux. It provides a single location to store files for installation and allows for ease of updating those files instead of dealing with multiple copies of DVDs. It also allows for very fast and hands-free installation as well as the ability to provide a menu-driven interface for selection of the desired kickstart configuration from among two or more choices.
Our requirements were that kickstart, once launched and after making a menu selection to choose a particular kickstart configuration, needed to be completely unattended.
We also needed to install some local tools and make configuration changes to the installed boxes before they would be ready for use. The Anaconda installer menu must provide us with options to install multiple versions of this kickstart or to boot from hard drive.
If no menu selection is made after a short timeout, the Anaconda installer is configured to boot from the hard drive. Each of the required servers can be located on a different system, or they can be combined onto a single computer. Our environment requires the use of a serial console during Kickstart for menu selection.
This gives us the ability to select from two or more different kickstart installations. For our environment, we had no reason not to have all of the servers on one box, and the number of simultaneous kickstarts we expect to experience is well within the capability of the hardware and network infrastructure we have available.
When sizing a prospective kickstart server the limiting factors are most likely to be the hard drive data transfer rates and the network. Experience has shown up to 20 or so systems can be kickstarted simultaneously in about an hour with a very modest Pentium 4, a single IDE hard drive, and a Mb connection.
The only reason we used this particular hardware is that it is what we had available. A network-based kickstart can be initiated by an PXE Boot capable network card. The PXE Boot file is loaded from the TFTP server along with the contents of a file which defines the location and name of the installation kernel and initrd.
This configuration file for Anaconda also contains the location of the kickstart configuration file to be used during the installation. After booting, Anaconda is started and Anaconda loads the menu and displays a window with a timer with several menu options. The Menu and time-out can be skipped if you do not need to make any choices here. After choosing the desired kickstart installation, Anaconda locates the kickstart configuration file from the HTTP server and reads it.
The kickstart configuration file has a default name of ks. We use several for our different configurations, so provide unique names for each. If all of the data required to perform a complete installation is included in the kickstart configuration file, the installation completes without further intervention from the administrator. The kickstart configuration file can also contain bash script commands that can be run both before and after the rest of the installation. We make extensive use of the post-installation bash scripts to perform installations of locally required RPM packages and tarballs as well as to make configuration changes before the first reboot.
In order to boot from the network it is necessary not only to have iinstallation network card that is capable of a network boot, but also to configure the BIOS to boot appropriately. You have a couple of options. Choose the option that best fits your needs. When booting from the hard drive prior to booting from the network, an additional step requiring some manual intervention would be required to force a boot from the network.
It is necessary to overwrite the boot record to prevent booting from the hard drive.
This can be done with a small script or from the command line using the dd command but instalpation is another point of intervention. We chose to configure BIOS to boot first from the network. We then set a short timeout for Anaconda so that the default is to boot to the hard drive if no other action is taken. Although the IP address can be specified in the dhcpd. DHCP can also serve a range of addresses rather than a specific address for each host, but that is outside the scope of this article.
We discovered during configuration of our server for the kickstart role that the next-server line is required in dhcpd. It took us a couple days to figure this out and it is one kiickstart the things we could not find documented anywhere. The allow booting and allow bootp statements are both required for kickstarts to function. All of the options pertaining to PXE Boot can be placed in the group or individual host stanzas as well as in the global section of the DHCP configuration.
This allows installwtion as much granularity as you need to have multiple servers and kickstart configurations as well as to ensure that only specific hosts or groups of hosts can be kickstarted.
Three PXE Boot files are required to perform a network boot. The first is pxelinux. The second is the network boot kernel, vmlinuzand the third is the initial RAM disk image, initrd. We also have discovered that this is the only place from which it works. This allows us to keep them separate and helps us to know which is which.
We have seen configurations in which files for different distributions and releases are all located in a single directory and named differently. Our method works better kickstsrt us because we like the additional organization it imposes. For the most part one set of PXE Boot files is pretty much like another. Most Red Hat Enterprise based distributions currently provide a set of these files. Most of these files should work ib most distributions. However we did find that the Red Hat Enterprise Linux 5.
This file is used to specify the locations of specific files such as the kernel and the initrd image file. These files are named with the hexadecimal representation of the IP address of the computer to be kickstarted. Usage is very straightforward for each of these tools. For example, the IP address They also specify the serial console parameters and provide a menu for selection of the desired kickstart.
The kernel and initrd images are not the files that will be installed on the kickstarted machine, but are used only as the running operating system during the kickstart itself. The PXE Boot process tries to load the correct file for the computer by using an interesting algorithm. First it tries to load a file with a name based on the MAC address of the system, then with names based on the hexadecimal IP address, removing one hex digit for each failure.
The sequence would look like this:. Then we use a soft link with the hexadecimal IP address as its name to point to a master file. We can do this because all of our Intel boxes have the same kickstart choices available. You could also use individual files if that suits your needs better.
The append lines have been split for formatting purposes, but should be on a single line when used. Note that there are multiple stanzas in the file. One for each possible kickstart installation that is defined.
Each stanza specifies different files for the vmlinuz, initrd. Console parameters are also specified in the PXE Boot configuration file because we use the console to make the menu choice for the desired kickstart and to monitor the intsallation.
This information was also very hard to find.
How Kickstart Works
This file also contains the definitions of the various menu options we want the Anaconda installer to provide, as well as the Function Key definitions for various help options. The menu options are created by Anaconda using the labels in each stanza. So the menu choices we have are 1, 2 and 3.
This is a strange unit, but the value of results in a timeout of twenty seconds. Separating the files that specify the options from the file that displays the available options allows us to define hidden options should we need to do that.
We have added our own options to the menu. Most UDP packets are not forwarded across subnet boundaries and we have many different subnets in our network. Based on our experience, you should only configure this on the core router closest to your server.
If a protocol is not specified on your router, the helper address will forward all UDP packets to your kickstart server. If this is not what you want, be sure to specify only those protocols that need to be forwarded. This is another piece of information that was very hard to locate.
We chose Apache for our web server because it is supplied by all Red Hat distributions and because we use it on other internal servers so are familiar with its operation. Once you have Apache installed and running, nothing else needs to be done to the configuration to make it work for kickstarts.
All you have to do is place the files in a location that is served by Apache. Because we wanted our server to be as flexible as possible, we decided to plan for the eventuality that we would eventually support both FTP and HTTP kickstarts even though we are only using HTTP at this time.
In order to accomplish this without having to store the files on the hard drive twice, we chose to keep only the ISO images on the hard drive and mount them using the loopback device to make the individual files in the ISO available to the kickstart. The iso images for RHEL 5. Note that we chose to use the loop1 and loop2 devices instead of the loop0 device so that the loop0 device would be available to anyone wanting to use a loopback. The kickstart configuration file, by default named ks.
This file provides the answers to all of the questions and entries to all of the fields required by the installation process. Only by having answers to each and every question can the kickstart be fully automated.
If any of the required fields does not have an entry the installation halts and waits for input. We initially created the kickstart file using the kickstart GUI configurator. Using this configurator allowed selection of the major software groups to be installed. There are other ways to obtain a kickstart configuration file to use as a starting point.