Started my kickstart infrastructure scripts
This commit is contained in:
parent
09a6affc02
commit
6cbe76f16b
3
kickstart/defs/common/sde/site.json
Normal file
3
kickstart/defs/common/sde/site.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"ldap_server": "host1.domain.com"
|
||||||
|
}
|
13
kickstart/defs/temari/temari.json
Normal file
13
kickstart/defs/temari/temari.json
Normal 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
3
kickstart/ks.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"machine_definitions": "defs"
|
||||||
|
}
|
64
kickstart/ks.rb
Normal file
64
kickstart/ks.rb
Normal 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
51
kickstart/rhel6.cfg
Normal 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
|
181
kickstart/sample_kickstart.cfg
Normal file
181
kickstart/sample_kickstart.cfg
Normal 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
|
||||||
|
|
||||||
|
|
243
kickstart/sample_rhel6.32.cfg
Normal file
243
kickstart/sample_rhel6.32.cfg
Normal 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
|
||||||
|
|
285
kickstart/sample_rhel6.64.cfg
Normal file
285
kickstart/sample_rhel6.64.cfg
Normal 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
12
kickstart/write_config.rb
Normal 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)
|
Loading…
Reference in New Issue
Block a user