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 # # # Options Indexes FollowSymLinks # Order allow,deny # Allow from all # #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