# Begin preparation directions
#-----------------------------
# 1. Prepare RHEL6 yum repositories by copying the entire contents of the RHEL6
#    install media (DVD, CD, or mounted ISO files) to NFS or HTTP accessible 
#    directories on an install server. An example directory structure would be
#    /var/www/html/rhel/6.1/x86_64
# 2. Copy the v7-server package, the v7 package, and its unique dependencies 
#    (dt, lmbench and stress) to a new HTTP accessible directory on your 
#    server. The files can be found in the “RHEL Hardware Certification” RHN 
#    channel. An example directory name for your files would be 
#    /var/www/html/v7-rhel6-x86_64. The v7 and v7-server packages are not 
#    architecture dependent but the dt, lmbench and stress files are, which 
#    explains the need for x86_64 in the directory name.
# 3. Create a yum repository from the v7 files by changing into the directory
#    where you copied the files and running the command “createrepo -p .”. You 
#    must run the command from a RHEL6 system. Do not forget the single period
#    after createrepo as it tells the command where to create the new yum 
#    metadata files (in the current directory). This directory should only be
#    used to store v7, its dependencies and the repo metadata files created by
#    the createrepo command.
# 4. Repeat the previous two steps, if necessary, to copy the required v7 and 
#    dependency files to your web server and create v7 repositories in unique 
#    directories for all the architectures you will be certifying on.
# 5. Obtain the kernel-debuginfo and kernel-debuginfo-common-x86_64 files that
#    match the version of the kernel you will be certifying on from RHN,
#    and copy them to a new HTTP accessible directory on your server. An 
#    example directory would be /var/www/html/rhel6.1-x86_64-debug 
# 6. Create a yum repository from the debug files by changing into the 
#    directory where you copied the files and running the command
#    “createrepo -p .”, as you did in step three. 
# 7. Repeat the previous two steps, if necessary, to create additional debug
#    package repositories for any different variants (RHEL 6.0, 6.1 etc.) and
#    architectures of RHEL that you will be certifying on.
#
# BEGIN OPTIONAL MRG-REALTIME SECTION (RHEL 6 x86_64 ONLY)
#  * Prepare the MRG-Realtime yum repositories by copying the entire contents of
#    the MRG-Realtime install media (DVD, CD, or mounted ISO files) to NFS or 
#    HTTP accessible directories on an install server. An example directory 
#    structure would be /var/www/html/realtime/2.1.
#  * Obtain the kernel-rt-debuginfo-common-x86_64 and 
#    kernel-rt-debuginfo packages for MRG-Realtime that match the version of the
#    kernel you will be certifying on from RHN and copy them to the *existing*
#    kernel-debug directory you set up in step 5. Re-run the createrepo 
#    command from step 6 to add them to the yum repository.
#  * Obtain the libxslt-python dependency for MRG-Realtime from RHN and copy it
#    to a new HTTP accessible directory on your server. An example directory
#    would be /var/www/html/realtime/dependencies.
#  * Create a yum repository from the dependency file(s) by changing into the 
#    directory where you copied the files and running the command
#    “createrepo -p .”, as you did in step three. 
# END OPTIONAL MRG-REALTIME SECTION
#
# 8. Save the kickstart script you are reading now in an HTTP accessible 
#    directory on your server. We recommend an obvious directory like 
#    /var/www/html/ks. 
# 9. Edit the kickstart script and:
#    * Uncomment one of the two install method lines (either URL or NFS 
#      depending on your environment, but not both) and replace the example 
#      server information with your own.
#    * Replace the example server information on the various server lines 
#      with your own server information.
#    * Uncomment the v7-server line if you will be installing a server.
#    * Uncomment the MRG-Realtime lines if you're certifying MRG-Realtime
#      and configure them to match your environment.
#10. Start the NFS (if applicable) and/or HTTP services on your server and 
#    configure them to load on boot. Test that you can browse the install 
#    tree(s) and the v7 repo(s) and confirm that you can view the kickstart 
#    file.
#11. Now that you have a working server, repeat steps five and six, if 
#    necessary, to create kickstart files for all the architectures you
#    will be certifying on. Red Hat provides example i386 and x86_64 files.
#    Don't forget to give each kickstart file a unique name that incorporates
#    the release of RHEL and its architecture and also indicates that the 
#    file is for v7 installation.
#12. Boot a test system with install media and at the boot prompt, enter the 
#    following information:
#
# boot: linux ksdevice=bootif ks=http://myserver.mydomain.com/ks/v7-6.1-x86_64.cfg
#
#     (Replace the server and kickstart file example text with the location and
#     name of your kickstart file. You only need the 'ksdevice=bootif' if your 
#     system has multiple NICs.) 
#13. The system will install, reboot and end at the graphical login.
#14. Log in as certuser with a password of redhat (root cannot log in at the GUI
#     for security reasons). You now have a fully configured test system ready 
#     to run v7.
# End preparation directions

# Begin v7 kickstart file for RHEL6 x86_64
install

# Remove the comment “#” from ONE of the two lines below to choose your install
# method and change the server information to match your own environment.
#url --url http://myserver.mydomain.com/path/to/rhel6-x86_64/bits
#nfs --server=myserver.mydomain.com --dir=/path/to/rhel6-x86_64/bits

lang en_US.UTF-8
keyboard us

# The --device=eth0 is required here to prevent the system from asking
# which NIC to kickstart from. You should also use 'ksdevice=bootif'
# on the boot line if you only have one NIC connected.
network --device eth0 --bootproto dhcp
rootpw  redhat
user --name=certuser --password=redhat
firewall --disabled
authconfig --enableshadow --passalgo=sha512 --enablefingerprint
selinux --enforcing
timezone --utc America/New_York
bootloader --location=mbr --driveorder=sda --append="rhgb quiet"

# Blank all disks and write disk labels, then install to disk /dev/sda ONLY.
# DO NOT RUN THIS KICKSTART ON A SYSTEM WITH DATA YOU WISH TO KEEP
zerombr
clearpart --all --initlabel
ignoredisk --only-use=sda
part /boot --fstype=ext4 --size=500 --ondisk=sda
part swap --size=2048 --ondisk=sda
part / --fstype=ext4 --size=1024 --grow --ondisk=sda
reboot

# Yum repository for v7, lmbench and stress dependencies. 
# Change the next line to match your environment.
repo --name=v7 --baseurl=http://myserver.mydomain.com/v7-rhel6-x86_64

# Yum repository for kernel debuginfo dependencies, including optional MRG-Realtime. 
# Change the next line to match your environment.
repo --name=rhel6.1-x86_64-debug --baseurl=http://myserver.mydomain.com/rhel6.1-x86_64-debug

# Yum repository for fence agent package. Change the next line to point
# to the HighAvailability directory in your install tree
repo --name=HighAvailability --baseurl=http://myserver.mydomain.com/path/to/rhel6-x86_64/bits/os/HighAvailability/

# Yum repository for MRG-Realtime 2.x packages. Uncomment the next line and change it
# to match your environment if you wish to certify for MRG-Realtime 2.x
#repo --name=MRG-Realtime --baseurl=http://myserver.mydomain.com/path/to/MRG/bits/

# Yum repository for MRG-RT dependency (libxslt-python). Uncomment the next line
# and change it to match your environment if you wish to certify for MRG-Realtime 2.x
#repo --name=MRG-Realtime-dependencies --baseurl=http://myserver.mydomain.com/path/to/MRG-dependency/bits/

%packages
@additional-devel
@base
@core
@debugging
@basic-desktop
@desktop-debugging
@desktop-platform
@desktop-platform-devel
@development
@emacs
@fonts
@general-desktop
@graphical-admin-tools
@graphics
@input-methods
@internet-browser
@legacy-x
@network-file-system-client
@performance
@perl-runtime
@server-platform
@server-platform-devel
@server-policy
@virtualization
@virtualization-client
@virtualization-platform
@x11
libXinerama-devel
xorg-x11-proto-devel
startup-notification-devel
libgnomeui-devel
libbonobo-devel
junit
libXau-devel
libgcrypt-devel
popt-devel
libdrm-devel
libXrandr-devel
libxslt-devel
libglade2-devel
gnutls-devel
mtools
pax
python-dmidecode
python-lxml
oddjob
sgpio
genisoimage
wodim
abrt-gui
desktop-file-utils
ant
rpmdevtools
jpackage-utils
rpmlint
certmonger
pam_krb5
krb5-workstation
nscd
pam_ldap
nss-pam-ldapd
netpbm-progs
libXmu
perl-DBD-SQLite
libvirt-java
dvd+rw-tools
qemu-kvm-tools
xorg-x11-apps
sox
kabi-whitelists
createrepo
mt-st
# Required for fencing test
fence-agents
# Screen utility is helpful for running tests over an SSH session.
screen 
# Midnight Commander utility is helpful for debugging test results
# in a non-GUI environment.
mc 
# Install v7 and dependencies from our custom repository
v7
# Uncomment this package only if you are setting up a v7 test server.
#v7-server
# Install the kernel debug packages required for the v7 kdump test
# in v7-1.3-43 and newer from our custom repository
kernel-debuginfo
kernel-debuginfo-common-x86_64
# Uncomment the following packages if you followed the optional steps
# above and want to certify for MRG-Realtime.
#kernel-rt
#kernel-rt-debuginfo
#kernel-rt-debuginfo-common-x86_64
#rt-setup
#rtctl
#rteval
#rteval-loads
#rt-tests
#libxslt-python

%post
# Set DHCP for all interfaces during %post if left unconfigured during install. 
if [ `ls -1 /etc/sysconfig/network-scripts/ifcfg-eth* | wc -l` -ge 1 ]
  then
  for i in /etc/sysconfig/network-scripts/ifcfg-eth* 
  do 
          if ! grep -i "bootproto" $i 
          then 
                  echo "BOOTPROTO=dhcp" >> $i 
          fi 
  done 
fi
if [ `ls /etc/sysconfig/network-scripts/ifcfg-wlan* | wc -l` -ge 1 ]
  then
  for i in /etc/sysconfig/network-scripts/ifcfg-wlan* 
  do 
          if ! grep -i "bootproto" $i 
          then 
                  echo "BOOTPROTO=dhcp" >> $i 
          fi 
  done 
fi
# Force default kernel selection. You'll need to specify EXACTLY which
# kernel you want to boot from. This gets around the problem of the debug
# kernel being set as the default if it's installed.
#
# 1. If installing RHEL 6.0, uncomment next line to add add workaround for 
# no /dev/root in %post from BZ 657257. This is fixed in RHEL 6.1 and later 
#ln -s `awk '{ if ($2 == "/") print $1; }' /etc/fstab` /dev/root
#
# 2. Use grubby to set the proper boot kernel by uncommenting the line that's
# correct for the version of RHEL you're using.
# RHEL 6.0
#grubby --set-default /boot/vmlinuz-2.6.32-71.el6.x86_64
# RHEL 6.1
#grubby --set-default /boot/vmlinuz-2.6.32-131.0.15.el6.x86_64
# RHEL 6.2
#grubby --set-default /boot/vmlinuz-2.6.32-220.el6.x86_64
# RHEL 6.3
grubby --set-default /boot/vmlinuz-2.6.32-279.el6.x86_64
%end

# End v7 kickstart file for RHEL6 x86_64