From Fedora Project Wiki

Kickstart short cuts for noobs

This page needs some love
This page should be revised or reconstructed to be more helpful. Problems may include being out of step with current team or project status or process.



Kickstart is the core of the automated installation system used by Fedora and RHEL.

This short cut describes how to set-up such a system.


Acronyms, descriptions

KVM documentation page.
| How Kickstart Works
High level overview of Kickstart, and a tool for modifying the kickstart configuration.
| RedHat Linux KickStart HOWTO
This HOWTO briefly describes how to use the RedHat Linux KickStart system to rapidly install large numbers of identical Linux boxes.
| How To Set Up A Local Yum Repository On Fedora 8
Creating a local repository.
kickstart syntax.

Open issues

Operating Environment

yum install yum-utils
This package will enable you to download packages, without installing them. So you can populate your kickstart server with packages that didn't come with the Install media.

Do the virsh bridge create in kickstart




Creating the NFS export Structure

  1. mkdir -p /exports/ks/configs
  2. mkdir -p /exports/ks/images
  3. update /etc/exports
/exports/ks/configs   ,no_root_squash)
  1. service nfs restart

populate an install directory for kickstart use

  1. mount -o loop /exports/isos/images/rhel6beta2.iso /mnt
  2. pushd /mnt
  3. cp -r * /exports/ks/images/rhel6beta2
  4. update /etc/exports

Kickstart config file

To create the config file use:

    • (install by: yum install system-config-kickstart)

# Kickstart file automatically generated by anaconda.

# Tells the system to install a fresh system rather than upgrade an existing system.

# Install from the NFS server specified.
nfs --server= --dir=/exports/ks/images/rhel6beta2

# If present, X is not configured on the installed system.

# Perform the kickstart installation in text mode.

# Installation logging level
logging --level=info

# Sets up the authentication options for the system.
authconfig --enableshadow --enablemd5

# Sets the system's root password

lang en_US.UTF-8
keyboard us
timezone --utc CET

# Configures network information for the system.
network  --device=eth0 --bootproto=dhcp --onboot=on
network  --device=eth2 --bootproto=dhcp --onboot=on
network  --device=eth3 --bootproto=dhcp --onboot=on

firewall --disabled
selinux --disabled

bootloader --location=mbr
# Clear the Master Boot Record

clearpart --all --initlabel
part / --fstype="ext3" --size=14000
part swap --fstype="swap" --size=768

firstboot --disabled


# Any post ops, just add the bash script commands here.


Adding a package to the repository

  • yumdownloader sysstat: Downloads the 'sysstat' packages, to the current directory, and with the same architecture as the current system architechture.
    • 'uname -m' will print the system architecture.

setting up a boot server

  1. yum install tftp-server dhcp httpd syslinux
  2. vi /etc/dhcp/dhcpd.conf
subnet netmask {
  default-lease-time 3600;
  max-lease-time 4800;
  option routers;
  option domain-name-servers;
  option subnet-mask;

host booty {
  hardware ethernet 00:54:20:7a:7e:8a;
  option host-name "booty";
  filename "pxelinux.0";
  1. vi /etc/xinetd.d/tftp
    • Change ' disable = no'
  2. Insert the Fedora DVD
  3. mount /dev/dvd /mnt
  4. cp vmlinuz initrd.img /var/lib/tftpboot
  5. cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
  6. cd /var/lib/tftpboot
  7. mkdir /var/lib/tftpboot/pxelinux.cfg
  8. touch 01-00-54-20-7A-7E-8A
  9. touch C0A830A0
  10. vi pxelinux.cfg/default
prompt 1
default linux
timeout 100

label linux
kernel vmlinuz
append initrd=initrd.img ramdisk_size=9216 noapic acpi=off
  1. Follow:
  2. Test that the boot works.
  3. Add kickstart as per 'Booting With Your Kickstart Files' in
  4. Change the 'append' line in the default file to:
    • append initrd=initrd.img ramdisk_size=9216 noapic acpi=off ks=nfs:

Local repository

See the reference in the reference list.

  1. yum install lighttpd
  2. vi /etc/lighttpd/lighttpd.conf
    • enable mod_aliases
    • add 'alias.url = ( "/yum" => "/exports/isos/repos" )'
  3. chkconfig lighttpd on
  4. /etc/init.d/lighttpd start

Package administration bytes

list content of a package
repoquery -ql mercurial
find a package
yum search kvm
download package without installing
Install a local package
yum localinstall TUT.RPM
Description of package
yum info mercurial

Trouble shooting


I have to select the NIC to use for the installation

During the boot, on a multi NIC system, I'm asked to choose which NIC to use for the installation.

use the ksdevice=eth3 in the kickstart command.

on virt-install put it inside the -x"PARMS" parameter.


Cannot retrieve repository metadata (repomd.xml)

See: [ | How to fix the “Cannot retrieve repository metadata (repomd.xml)” error in Fedora? ]

Public key for .rpm is not installed

Public key for tigervnc-server-minimal-1.0.90-0.22.20100813svn4123.fc14.x86_64.rpm is not installed

See: | Public Key Not Installed

  1. find / -name "*GPG*"
  2. rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora