From Fedora Project Wiki

Kickstart short cuts for noobs

Cog.png
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.

Introduction

Purpose

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.

Scope

Acronyms, descriptions

References

http://www.linux-kvm.org/page/Documents
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.
http://fedoraproject.org/wiki/Anaconda/Kickstart
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 http://www.mail-archive.com/netcf-devel@lists.fedorahosted.org/msg00361.html

Storage

Network

Administration

Creating the NFS export Structure

  1. mkdir -p /exports/ks/configs
  2. mkdir -p /exports/ks/images
  3. update /etc/exports
/exports/ks/configs             192.168.42.0/255.255.255.0(ro,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
/exports/ks/images/rhel6beta2  192.168.42.0/255.255.255.0(ro,no_root_squash)


Kickstart config file

To create the config file use:

Fedora
/usr/bin/system-config-kickstart
    • (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

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

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

# Perform the kickstart installation in text mode.
text

# Installation logging level
logging --level=info


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

# Sets the system's root password
rootpw --iscrypted XXXXXXXXXXXXXXXXXXXXXXXXXXX


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
zerombr

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


firstboot --disabled
reboot

%packages 
@base
@core
@java
keyutils
trousers
fipscheck
device-mapper-multipath
-cups
nfs-utils

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

%end

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 192.168.42.0 netmask 255.255.255.0 {
  range 192.168.42.10 192.168.42.24;
  default-lease-time 3600;
  max-lease-time 4800;
  option routers 192.168.42.1;
  option domain-name-servers 192.168.42.1;
  option subnet-mask 255.255.255.0;
}

host booty {
  hardware ethernet 00:54:20:7a:7e:8a;
  fixed-address 192.168.42.21;
  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: https://fedoraproject.org/wiki/Kickstart_short_cuts_for_noobs#Creating_the_NFS_export_Structure
  2. Test that the boot works.
  3. Add kickstart as per 'Booting With Your Kickstart Files' in http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch25_:_Network-Based_Linux_Installation
  4. Change the 'append' line in the default file to:
    • append initrd=initrd.img ramdisk_size=9216 noapic acpi=off ks=nfs:192.168.42.1:/exports/ks/configs/fedora14.ks

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

kickstart

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.


yum

Cannot retrieve repository metadata (repomd.xml)

See: [ http://digitizor.com/2009/06/17/how-to-fix-the-cannot-retrieve-repository-metadata-repomd-xml-error-in-fedora-11 | 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