fuel-library/iso/ks.cfg
2013-03-19 17:38:15 +04:00

215 lines
6.2 KiB
INI

install
text
%include /tmp/source.ks
reboot --eject
lang en_US.UTF-8
selinux --disabled
#url --url http://172.18.67.168/centos-repo/centos-6.3
url --url http://mirror.stanford.edu/yum/pub/centos/6.3/os/x86_64/
network --bootproto=dhcp
repo --name=Base --mirrorlist=http://mirrorlist.centos.org/?release=6.3&arch=x86_64&repo=os
repo --name=Updates --mirrorlist=http://mirrorlist.centos.org/?release=6.3&arch=x86_64&repo=updates
repo --name=Mirantis --mirrorlist=http://download.mirantis.com/epel-fuel-folsom-2.1/mirror.external.list
repo --name=PuppetLabs --baseurl=http://yum.puppetlabs.com/el/6/products/x86_64/
keyboard us
rootpw r00tme
timezone --utc UTC
zerombr
%include /tmp/bootloader.ks
clearpart --all --initlabel
%include /tmp/partition.ks
%pre
#!/bin/sh
# hard drives
drives=""
for drv in `ls -1 /sys/block | grep -e "sd\|hd\|vd"`; do
if (grep -q 0 /sys/block/${drv}/removable); then
drives="${drives} ${drv}"
fi
done
set ${drives}
numdrives=`echo $#`
tgtdrive="undefined"
if [ ${numdrives} -gt 1 ]; then
exec < /dev/tty3 > /dev/tty3 2>&1
chvt 3
while [ "${tgtdrive}" = "undefined" ]; do
clear
echo
echo '********************************************************************************'
echo '* W A R N I N G *'
echo '* *'
echo '* Which of the detected hard drives do you want to be used as *'
echo '* installation target? *'
echo '* *'
echo '********************************************************************************'
echo
echo "Possible choices: ${drives}"
echo
read -p "Choose hard drive: " tgtdrive
done
clear
chvt 1
else
tgtdrive=`echo ${drives} | sed -e "s/^\s*//" -e "s/\s*$//"`
fi
# source
if test -e /dev/disk/by-uuid/will_be_substituted_with_actual_uuid; then
echo "harddrive --partition=UUID=will_be_substituted_with_actual_uuid --dir=/" > /tmp/source.ks
else
echo "cdrom" > /tmp/source.ks
fi
# bootloader
echo "bootloader --location=mbr --driveorder=${tgtdrive}" > /tmp/bootloader.ks
# partition
echo "partition / --fstype=ext4 --ondisk=${tgtdrive} --size=1 --grow --asprimary" > /tmp/partition.ks
echo "partition swap --recommended --ondisk=${tgtdrive}" >> /tmp/partition.ks
%end
%packages --nobase --excludedocs
@Core
wget
curl
crontabs
cronie
puppet-2.7.19
puppet-server-2.7.19
puppetdb
python-argparse
mcollective
mcollective-client
#rubygem-astute
ruby-devel
gcc
make
man
yum
openssh-clients
ntp
%post --log=/root/anaconda-post.log
#!/bin/sh
# Mounting installation source
SOURCE=/tmp/source
FS=/tmp/fs
echo
mkdir -p ${SOURCE}
mkdir -p ${FS}
mount /dev/cdrom ${SOURCE}
# Copying Repo to the /var/www/cobbler directory
repodir="/var/www"
centos_dir="${repodir}/centos/6.3/os/x86_64"
mkdir -p ${centos_dir}
cp -r ${SOURCE}/images ${centos_dir}
cp -r ${SOURCE}/isolinux ${centos_dir}
#cp -r ${SOURCE}/repodata ${centos_dir}
#cp -r ${SOURCE}/Packages ${centos_dir}
cp -r ${SOURCE}/ubuntu ${repodir}
cp -r ${SOURCE}/astute*.gem ${repodir}
# Unpacking fuel modules
tar zxf ${SOURCE}/fuel-modules.tgz -C /etc/puppet/modules
# Prepare local repository specification
#rm /etc/yum.repos.d/CentOS*.repo
cat > /etc/yum.repos.d/puppet.repo << EOF
[fuel]
name=Puppetlabs repo
baseurl=http://yum.puppetlabs.com/el/6/products/x86_64/
gpgcheck=0
EOF
#mkdir -p /etc/httpd/conf.d
#cat > /etc/httpd/conf.d/distr.conf << EOF
#Alias /ubuntu /var/www/ubuntu
#Alias /centos /var/www/centos
#
#<Directory "/var/www/">
# Options Indexes FollowSymLinks
# Order allow,deny
# Allow from all
#</Directory>
#EOF
# Disable GSSAPI in ssh server config
sed -i -e "/^\s*GSSAPICleanupCredentials yes/d" -e "/^\s*GSSAPIAuthentication yes/d" /etc/ssh/sshd_config
# Copying bootstrap_admin_node.sh, chmod it and
# adding /etc/init/bootstrap_admin_node.conf
cp ${SOURCE}/bootstrap_admin_node.sh /usr/local/sbin/bootstrap_admin_node.sh
cp ${SOURCE}/functions.sh /usr/local/lib/functions.sh
chmod 0777 /usr/local/sbin/bootstrap_admin_node.sh
cp ${SOURCE}/bootstrap_admin_node.conf /etc/init/bootstrap_admin_node.conf
echo "ENABLED=1" > /etc/sysconfig/bootstrap_admin_node
# Copying cobbler system script to sbin folder
ln -s /etc/puppet/modules/cobbler/examples/cobbler_system.py /usr/local/sbin/cobbler_system
# Copying version.yaml file. It contains COMMIT_SHA of last commit.
mkdir -p /etc/fuel
cp ${SOURCE}/version.yaml /etc/fuel/version.yaml
# Prepare custom /etc/issue logon banner and script for changing IP in it
cat > /etc/issue << EOF
###################################################
# Welcome to the Fuel puppetmaster/cobbler server #
###################################################
Server is running on \m platform
Fuel management address is:
Default administrator login: root
Default administrator password: r00tme
Please change root password on first login.
EOF
# Unmounting source
umount -f ${SOURCE}
rm -rf ${SOURCE}
umount -f ${FS} || true
rm -rf ${FS}
# Enabling/configuring NTPD and ntpdate services
echo "server 127.127.1.0" >> /etc/ntp.conf
echo "fudge 127.127.1.0 stratum 10" >> /etc/ntp.conf
echo "tos orphan 7" >> /etc/ntp.conf
chkconfig ntpd on
chkconfig ntpdate on
# Do not show error message on ntpdate failure. Customers should not be confused
# if admin node does not have access to the internet time servers.
sed -i /etc/rc.d/init.d/ntpdate -e 's/\([ $RETVAL -eq 0 ] && success || \)failure/\1success/'
# Disabling splash
sed -i --follow-symlinks -e '/^\skernel/ s/rhgb//' /etc/grub.conf
sed -i --follow-symlinks -e '/^\skernel/ s/quiet//' /etc/grub.conf
# Uncomment to disable console clearing
# sed -i 's/getty/getty --noclear/' /etc/init/tty.conf
# Disabling starting first console from start-ttys service
sed -i --follow-symlinks -e 's/ACTIVE_CONSOLES=.*/ACTIVE_CONSOLES=\/dev\/tty\[2-6\]/' /etc/sysconfig/init
# Copying default bash settings to the root directory
cp -f /etc/skel/.bash* /root/
# Changing Cobbler node manifest to deploy
%end