Started my kickstart infrastructure scripts

This commit is contained in:
Orien Vandenbergh 2014-01-30 23:44:11 -07:00
parent 09a6affc02
commit 6cbe76f16b
9 changed files with 855 additions and 0 deletions

View File

@ -0,0 +1,3 @@
{
"ldap_server": "host1.domain.com"
}

View File

@ -0,0 +1,13 @@
{
"hostname": "temari",
"provision": {
"flags": true
},
"machine_type": "B10:SDE:Linux Desktop",
"site": "sde",
"run_list": [
"Base_RHEL_64_Workstation",
"App_Linux_Workstation",
"RHEL_AntiVirus"
]
}

3
kickstart/ks.json Normal file
View File

@ -0,0 +1,3 @@
{
"machine_definitions": "defs"
}

64
kickstart/ks.rb Normal file
View File

@ -0,0 +1,64 @@
#!/opt/chef/embedded/bin/ruby
#
require "cgi"
require "json"
def parse_json(filename)
o = nil
File.open(filename) do |f|
o = JSON.parse(f.read)
end
end
def find_host(opts,hostname)
# Return a host object, formed from the json file in the first
# matching machine configuration directory.
host = nil
machdir = File.join(opts['machine_definitions'],hostname)
machfile = File.join(opts['machine_definitions'],hostname,hostname+'.json')
if Dir.exists?(machdir)
if File.exists?(machfile)
host = parse_json(machfile)
end
end
host
end
confdir = ".";
opts = parse_json(confdir + '/ks.json')
cgi = CGI.new
clientip = cgi.remote_addr
clientname = cgi.remote_host
clientarch = ENV['X-Anaconda-Architecture']
clientname ||= 'temari'
host = find_host(opts,clientname)
puts cgi.header("text/plain")
node = parse_json(opts['machine_definitions']+'/'+clientname+'/'+clientname+'.json')
site = parse_json(opts['machine_definitions']+'/common/'+node['site']+'/site.json')
puts "node"
p node
puts "site"
p site
node = site.merge(node)
puts "updated node"
p node
rhel_oes = node['run_list'].select(/RHEL/i)
server = rhel_oes.select(/server/i)
workstation = rhel_oes.select(/workstation|desktop/i)
if cgi.has_key?('validate')
puts "Running reprovision script, just validate the configuration and return if valid"
else
puts "Someone is actually asking for the kickstart configuration file, fetch it"
end

51
kickstart/rhel6.cfg Normal file
View File

@ -0,0 +1,51 @@
# Begin v7 kickstart file for RHEL6 x86_64
install
url --url http://{SERVER_NAME}/repo/{PLATFORM}/{CLIENT_ARCH}
text
lang en_US.UTF-8
keyboard us
timezone --utc Etc/UTC
clearpart --all --initlabel
ignoredisk --only-use={BOOT_DRIVE}
part /boot --fstype=ext4 --size=500 --ondisk={BOOT_DRIVE} --asprimary
part pv.01 --grow --size=500 --ondisk={BOOT_DRIVE} --asprimary
volgroup {VG_NAME} --pesize=32768 pv.01
logvol / --fstype=ext4 --name=lv_root --vgname={VG_NAME} --size=10240 --maxsize=20480 --grow # 10-20g
logvol /opt --fstype=ext4 --name=lv_home --vgname={VG_NAME} --size=10240 --maxsize=20480 --grow # 20g
logvol /var --fstype=ext4 --name lv_var --vgname={VG_NAME} --size=5120 --maxsize=10240 --grow # 5-10g
logvol /mnt --fstype=ext4 --name=lv_mnt --vgname={VG_NAME} --size=1 # 1m
logvol swap --fstype=swap --name=lv_swap --vgname={VG_NAME} --recommended
reboot
repo --name=rhel --baseurl=http://{SERVER_NAME}/repo/{PLATFORM}/{CLIENT_ARCH}
repo --name=project --baseurl=http://{SERVER_NAME}/repo/Project/{CLIENT_ARCH}
sshpw --username=<name> <password> [--iscrypted|--plaintext] [--lock]
authconfig --enableldap --enableldapauth --ldapserver={LDAP_HOST} --ldapbasedn="{LDAP_BASE_DN}"
%packages
@core
@base
%pre
#Cache the interesting current system configurations, before the formatting
mkdir /tmp/ram
mount -t tmpfs -o size=256m tmpfs /tmp/ram
# do some mounts, then save the ssh keys
cp -a /etc/ssh/host_key* /tmp/ram
cp -a /host_key* /tmp/ram
# do some unmounts
%end
%post --nochroot
# copy data from /tmp/ram into /mnt/sysimage
%post
# chef
%end

View File

@ -0,0 +1,181 @@
#########################################################################
#
# Red Hat Academy Classroom Server Kickstart Script
#
# $Id: 010_text.dbk,v 1.5 2005/08/08 08:35:41 bowe Exp $
# version: RHEL4
# academy-docs@redhat.com
#
# For more information, see the Red Hat Customization Guide,
# http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/sysadmin-guide/ch-kickstart2.html
#
#########################################################################
###############################################################
# you definately want to set one of the following
###############################################################
rootpw redhat
bootloader --location=mbr --password=redhat
###########################################################################
#
# the following MD5 encrypted passwords can be generated using
#
# openssl passwd -1 redhat
#
# see "man sslpasswd" for more information
#
###########################################################################
#rootpw --isencrypted $1$Su2Gv/$fZeEi7RtQq/RAZ1oEla5z0 # md5 encrypted "redhat"
#bootloader --location=mbr --md5pass=$1$x.3x1cDe$ucwc8hTScWzfb5DYW6r25/
###############################################################
# point to a local installation server, or use "cdrom"
###############################################################
text # you're not going to be standing there watching it, are you?
cdrom
# url --url http://kickstart.example.com/pub/es4/i386
###############################################################
# partitioning
###############################################################
zerombr yes
clearpart --all --initlabel
part /boot --fstype ext3 --size 128
part / --fstype ext3 --size 4096 --grow --maxsize 8192
part /var --fstype ext3 --size 4096 --grow --maxsize 8192
part swap --recommended
#Very important to have the two part lines before the lvm stuff
volgroup VG --pesize=32768 pv.5xwrsR-ldgG-FEmM-2Zu5-Jn3O-sx9T-unQUOe
logvol / --fstype=ext4 --name=lv_root --vgname=VG --size=40960
logvol /home --fstype=ext4 --name=lv_home --vgname=VG --size=25600
logvol swap --fstype swap --name=lv_swap --vgname=VG --size=4096
bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
###############################################################
# network configuration
# - the following is for the "recommended solution" outlined
# in the Red Hat Academy Instructor's Guide
###############################################################
network --bootproto=static --ip=192.168.0.254 --netmask=255.255.255.0 --device=eth0
network --bootproto=dhcp --device=eth1
#firewall --enabled --http --ftp --port=https:tcp --port=ipp:tcp
firewall --disabled
###############################################################
# environment
###############################################################
lang en_US
langsupport --default=en_US
timezone America/New_York
#timezone America/Chicago
#timezone America/Denver
#timezone America/Los_Angeles
###############################################################
# hardware
###############################################################
mouse generic3ps/2
#mouse genericps/2 --emulthree # enable for 2 button mice
keyboard us
xconfig --depth=16 --resolution=1024x768 --defaultdesktop=GNOME --startxonboot
###############################################################
# misc
###############################################################
auth --useshadow --enablemd5
reboot # reboot automatically when done
install # instead of "upgrade"
###############################################################
#
# New in RHEL-4: SELinux
#
###############################################################
selinux --enforcing
#selinux --permissive
#selinux --disabled
###############################################################
#
# Software
#
###############################################################
%packages --resolvedeps
@ Workstation Common
@ Server
@ GNOME
@ Engineering and Scientific
@ Games and Entertainment
@ Mail Server
@ DNS Name Server
@ FTP Server
@ Network Servers
@ Development Tools
@ System Tools
ypserv
dhcp
ethereal-gnome
sysstat
vlock
%post
###############################################################
#
# Post Script - the following script runs on the newly
# installed machine, immediately after installation
#
###############################################################
########################################################
# add entry to /etc/hosts, if necessary
########################################################
#echo "192.168.0.254 rha-server" >> /etc/hosts
########################################################
# turn on required services
########################################################
chkconfig httpd on
chkconfig vsftpd on
########################################################
# install red hat academy custom software
########################################################
#RHASRC=ftp://kickstart.example.com/pub/rha/RPMS/
#rpm -ihv $RHASRC/rha-base*.rpm $RHASRC/rha-classroom-rha*.rpm $RHASRC/rha-server-*.rpm $RHASRC/fauxlp-*.rpm
#unset RHASRC
########################################################
# add proxy server to /etc/rha_server.conf, if necessary
########################################################
#echo "ExerciseReporterProxy http://10.1.1.1:8080" >> /etc/rha_server.conf
########################################################
# mirror RHEL-4-ES distribution from remote server
########################################################
#lftp -c "mirror ftp://kickstart.example.com/pub/es4 /var/ftp/pub/es4"
########################################################
# ln anonymous FTP pub dir to Document Root
########################################################
ln -s ../../ftp/pub /var/www/html/pub
# set SELinux context s.t. contents of pub directory available from web
chcon -R --reference /var/www/html /var/ftp/pub

View File

@ -0,0 +1,243 @@
# 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/i386
# 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-i386. The v7 and v7-server packages are not
# architecture dependent but the dt, lmbench and stress files are, which
# explains the need for i386 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-i686 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-i386-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.
# 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.
#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-i386.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 i386
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-i386/bits
#nfs --server=myserver.mydomain.com --dir=/path/to/rhel6-i386/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-i386
# Yum repository for kernel debuginfo dependencies.
# Change the next line to match your environment.
repo --name=rhel6.1-i386-debug --baseurl=http://myserver.mydomain.com/rhel6.1-i386-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-i386/bits/os/HighAvailability/
%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
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 debuginfo packages required for the v7 kdump test
# in v7-1.3-43 and newer from our custom repository
kernel-debuginfo
kernel-debuginfo-common-i686
%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.i386
# RHEL 6.1
#grubby --set-default /boot/vmlinuz-2.6.32-131.0.15.el6.i386
# RHEL 6.2
#grubby --set-default /boot/vmlinuz-2.6.32-220.el6.i386
# RHEL 6.3
grubby --set-default /boot/vmlinuz-2.6.32-279.el6.i386
%end
# End v7 kickstart file for RHEL6 i386

View File

@ -0,0 +1,285 @@
# 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

12
kickstart/write_config.rb Normal file
View File

@ -0,0 +1,12 @@
#!/usr/bin/ruby
#
require "json"
conf_file = "ks.json"
settings = {
"machine_definitions" => "definitions",
"machine_definitions" => "definitions"
};
puts JSON.pretty_generate(settings)