Setting Up the Installation Server

Setting Up the Installation Server

Kickstart can be configured on an FTP, NFS, or Apache server. Each method is explained below, but my experience is that the Apache server has a number of advantages over the other two.

Using a Web server for Kickstart is generally easier because:

  • Sometimes a Kickstart server has to be located on a remote network, often passing through a firewall. Strict firewall rules for HTTP are generally easier to configure than those for FTP or NFS.

  • The http:// nomenclature used by Kickstart for accessing files is more familiar to users than that used for NFS and FTP. This may be important for you when configuring files for automated Kickstart installation.

Basic Preparation

The first example sets up a Kickstart server for use in Fedora Core 2 installations. You will place all the necessary files in the /data/network-install directory.

Create the Installation Directories

Create the directories /data/network-install/Fedora/base, /data/network-install/Fedora/RPMS, and /data/network-install/ISO in which you will copy the necessary files.

     [[email protected] tmp]# mkdir -p /data/network-install/Fedora/base
     [[email protected] tmp]# mkdir -p /data/network-install/Fedora/RPMS
     [[email protected] tmp]# mkdir -p /data/network-install/ISO

You now need to place the network installation driver files into the base directory.

Copying the Files

The HTTP, NFS, and FTP Kickstart methods all require the base set of Fedora files to be installed on the Kickstart server:

Mount your first Fedora CD-ROM:

[[email protected] tmp]# mount /dev/cdrom /mnt/cdrom

Copy the files from the CD-ROM base directory to the hard disk:

[[email protected] tmp]# cd /mnt/cdrom/Fedora/base
[[email protected] base]# cp -r * /data/network-install/Fedora/base

Unmount your CD-ROM, and use the eject command to retrieve it from the drive bay:

[[email protected] base]# cd /tmp
[[email protected] tmp]# umount /dev/cdrom
[[email protected] tmp]# eject cdrom

You also have the option to FTP all the files from the base directory of the desired version of Fedora from the Fedora Web site to the /data/networkinstall/Fedora/base directory.

HTTP and FTP Preparation

Copy all the contents of the /Fedora directory of each of the installation CDs to the /data/network-install/ directory. You need about 2GB of space. When copying is complete, your /data/network-install/Fedora/ directory should look like this:

     [[email protected] tmp]# ls /data/network-install/Fedora/
     base RPMS TRANS.TBL
     [[email protected] tmp]#

NFS Preparation

Create ISO images of the installation CDs, and place them in the /data/networkinstall/ISO directory. This requires about 2GB of space as well. You can download the ISO images from the Fedora Web site or use the Fedora CDs. If you create the ISO files from CDs, make sure they have the same file names as the ones you can download from the Fedora Web site.

For the first CD, the code you need is:

     [[email protected] tmp]# cd /data/network-install/ISO
     [[email protected] ISO]# dd if=/dev/cdrom of=FC2-i386-disc1.iso bs=32k
     [[email protected] ISO]# eject cdrom

For the second CD, use:

     [[email protected] ISO]# dd if=/dev/cdrom of=FC2-i386-disc2.iso bs=32k
     [[email protected] ISO]# eject cdrom

For the third, use:

     [[email protected] ISO]# dd if=/dev/cdrom of=FC2-i386-disc3.iso bs=32k
     [[email protected] ISO]# eject cdrom

Finally, use this code to install the fourth CD:

     [[email protected] ISO]# dd if=/dev/cdrom of=FC2-i386-disc4.iso bs=32k
     [[email protected] ISO]# eject cdrom


Here is a sample procedure to make ISO files with the older mkisofs command. You may have to install the mkisofs RPM on newer Fedora versions. The command requires a mounted CD-ROM drive, so don't forget the mount command.

     [[email protected] ISO]# mount /mnt/cdrom
     [[email protected] ISO]# mkisofs -J -r -T -o filename.iso
     [[email protected] ISO]# eject cdrom

Set Up Your Web Server

You will now have to set up Apache to give the file listings of your /data/networkinstall/Fedora and /data/network-install/ISO directories by pointing your browser to the URL or, respectively. Here is a sample httpd.conf configuration:


     # For HTTP Installations
          DocumentRoot /data/

     <Directory /data/network-install>
        Options +Indexes
        AllowOverride AuthConfig
        order allow,deny
        allow from all

Remember to restart Apache to make these settings take effect.

Set Up Your FTP Server

You also have to set up your VSFTPD server to make incoming anonymous FTP connections log into the /data/network-install directory by default. Here is a sample snippet of the vsftpd.conf file:

     # Anonymous FTP Root Directory

Remember to restart VSFTPD to make these settings take effect.

Create a Special FTP User

You can create a special user for non-anonymous FTP installations with the user's home directory as /. You must also make sure that the user has read access to the /data/network-install directory. For example:

     [[email protected] tmp]# useradd -g users ftpinstall
     [[email protected] tmp]# passwd ftpinstall
     Changing password for user ftpinstall.
     New password:
     Retype new password:
     passwd: all authentication tokens updated successfully.
     [[email protected] tmp]#
     [[email protected] tmp]# usermod -d / ftpinstall
     [[email protected] tmp]#

Set Up Your NFS Server

The steps for setting up an NFS server are more complicated:

Create a /etc/exports file with the following entry in it. You must use tabs, not spaces between the entries:

/data/network-install           *(ro,sync)

Make sure that the portmap, nfs, nfslock, and netfs daemons are all running to create an NFS server. The startup scripts for these are found in the /etc/init.d directory. Chapter 29, "Remote Disk Access with NFS," explains this in more detail.

Run the exportfs command to add this directory to the NFS database of network available directories:

[[email protected] tmp]# exportfs -ra

Keep in mind that the installation client must have a matching pair of forward and reverse DNS entries on your DNS server. In other words, a DNS lookup on the IP address of the installation client must return a server name that maps back to the original IP address when a DNS lookup is done on that same server name. For example:

     [[email protected] tmp]# host domain name pointer
     [[email protected] tmp]#

     [[email protected] tmp]# host has address
     [[email protected] tmp]#

This may mean that you must create entries for all your DHCP IP addresses if you choose to use a DHCP method of assigning IP addresses during installation.

Configure Your DHCP Server

During the installation procedure, the installation client prompts you for the IP address it should use for the installation process. I recommend selecting the option that makes the installation client get its address via DHCP. This automates the installation more, thereby making it faster. It also reduces the possibility of human error.

Setting up the Installation Server as a DHCP server is fairly straight forward; for details see Chapter 8, "Configuring the DHCP Server."

     Python   SQL   Java   php   Perl 
     game development   web development   internet   *nix   graphics   hardware 
     telecommunications   C++ 
     Flash   Active Directory   Windows