SHIFT

--- Sjoerd Hooft's InFormation Technology ---

User Tools

Site Tools


Sidebar

Recently Changed Pages:

View All Pages


View All Tags


LinkedIn




WIKI Disclaimer: As with most other things on the Internet, the content on this wiki is not supported. It was contributed by me and is published “as is”. It has worked for me, and might work for you.
Also note that any view or statement expressed anywhere on this site are strictly mine and not the opinions or views of my employer.


Pages with comments

View All Comments

redhatkickstart

Red Hat Kickstart

Red Hat Kickstart is a method for a system administrator to create an answer file to answer the question usually asked during an installation. It is similar to jumpstart from Solaris or the unattend file for Windows installations. This page is about creating a kickstart file, modifying it to your needs and finally using it during an installation with a DVD.

Building a Kickstart File

The easiest way to create a kickstart file is using the graphical tool “system-config-kickstart”. It provides an easy way to setup the configurations but also has a few downsides. For example, you can't use it to setup LVM volumes. To start it simply type “system-config-kickstart” from the commandline. If you get an error stating that the command cannot be found it's probably not installed. Install it using the command “yum install system-config-kickstart”.

Overview command:

yum install system-config-kickstart
system-config-kickstart

This will start this graphical tool:
redhatkickstart01.jpg

You need to set a few things to get a working system:

  • Set the root password and encrypt it
  • Clear the MBR and initialize the disk
  • Partitioning:
    • /boot with filesystem ext4 of about 250 MB
    • swap of about 512 MB
    • / with filesystem ext4 and either set a size or decide to decide to allocate all remaining disk space to this filesystem
  • Set the networkdevice eth0 to DHCP
  • Install at least the Base package set

Here a screenshot of the partitioning configuration and the package selection:
redhatkickstart02.jpg
redhatkickstart03.jpg

Then save the kickstart file, which will give an example like this:

[root@localhost ~]# cat shifting.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use CDROM installation media
cdrom
# Root password
rootpw --iscrypted $1$c29CNyiX$jWnvp1/pv0RvJsTJhnt5c/
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --enforcing
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone  Europe/Amsterdam
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="ext4" --size=250
part swap --fstype="swap" --size=512
part / --fstype="ext4" --grow --size=1

%packages
@base

%end

This is a very basic installation but will work. You can modify it using a text editor.

Note that the tool will automatically by default enable selinux but disable the firewall. Disabling the firewall is not possible during the manual installation but is with kickstart.

Edit Kickstart File

We just created a kickstart file with some very basic options. Of course it's possible to load the config file again and make some additional changes but sometimes it's just easier and faster to use a text editor.

These are some options you could do:

  • Add a package group to the installation files
  • Add a single package to the installation
  • Add an installation line to some file

So if I would like to install the Development Tools package group, the gimp package and the time and date to the issue file I would ad these lines to kickstart file:

@Development Tools
gimp

%post
date > /root/install-date
%end
Note that adding the installation lines happens inside the %post part of the file. This is a new part since I did not add a post part using the system-config-kickstart utility.

This would now lead to the following file:

[root@localhost ~]# vim shifting.cfg
[root@localhost ~]# cat shifting.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use CDROM installation media
cdrom
# Root password
rootpw --iscrypted $1$c29CNyiX$jWnvp1/pv0RvJsTJhnt5c/
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --enforcing
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone  Europe/Amsterdam
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="ext4" --size=250
part swap --fstype="swap" --size=512
part / --fstype="ext4" --grow --size=1

%packages
@base
@Development Tools
gimp

%end

%post
date > /root/install-date

%end

Syntax Checking

Note that when you edit the file using vim you get a little color coding which makes the file more readable and will show you syntax errors:
redhatkickstart04.jpg

If you want something a little bit more professional you van have ksvalidator check the file:

[root@localhost ~]# ksvalidator shifting.cfg

If a syntax error was made ksvalidator will show you an error. It does not check the commands for example inside the post section. Only the syntax.

Make Kickstart File Available to Installer

There are several ways to provide the file to the installer. I will use the http method. For this I need a webserver, see here on how to deploy a webserver on Red Hat.

After installing the webserver, copy the kickstart file to the /var/www/html/ directory and make sure it's readable by the apache webserver.

Start the Installation With a Kickstart File

Start your system using the install ISO with Red Hat Enterprise Server. In this cased I used this media:

  • rhel-server-6.5-x86_64-dvd.iso

When the server is booting and with the option “Install or Upgrade an existing system” highlighted, press tab. Now the following line appears:

vmlinuz initrd=initrd.img

Now add the location from the kickstart file:

vmlinuz initrd=initrd.img ks=http://192.168.25.128/shifting.cfg

The IP address shown is the IP address of my webserver which is hosting the kickstart file:
redhatkickstart05.jpg

You could leave a comment if you were logged in.
redhatkickstart.txt · Last modified: 2021/09/24 00:25 (external edit)