#!/bin/bash vdir=$1 if [ -z "${vdir}" ] ; then echo "ERROR: $0" echo "Provide the directory of the root filesystem to operate on" exit fi # Cleanup yum config entirely, waiting for the config files to populate this rm -rf ${vdir}/etc/yum.conf ${vdir}/etc/yum.repos.d # NOTE: we're enabling util-vserver to allow it to help shutdown all slices # before rebooting. This has been problematic in the past. # Thierry : I'm enabling network since, for some reason, it ends up turned off on fedora9 for service in network util-vserver; do chroot ${vdir} /sbin/chkconfig $service on done # Remove unneeded services # turn off firstboot if present, might cause the node to hang chroot ${vdir} /sbin/chkconfig firstboot off || : # this is to automatically restart vservers, let nm do that chroot ${vdir} /sbin/chkconfig vservers-default off || : # vprocunhide is required with kernels that have CONFIG_VSERVER_PROC_SECURE enabled # which is the case for our k32 kernel chroot ${vdir} /sbin/chkconfig vprocunhide on || : # Disable splaying of cron. echo > ${vdir}/etc/sysconfig/crontab # Add site_admin account chroot ${vdir} /usr/sbin/useradd -p "" -u 502 -m site_admin # Remove 32bit packages from 64bit system (http://wiki.centos.org/FAQ/General#head-357346ff0bf7c14b0849c3bcce39677aaca528e9) # use rpm instead of yum as /proc is not mounted at that poing if echo ${vdir} | grep -q x86_64 ; then chroot ${vdir} rpm -qa --qf '%{name}.%{arch}\n' | grep 'i[36]86$' | xargs chroot ${vdir} rpm -e fi # NOTE: This is added to relieve one site's Cisco router configuration that # fails to recognize the host once the arping is sent out. # NOTE: this is pretty fragile, and fails on fedora 10 that as of today (oct. 20 2009) # has initscripts-8.86.3-1.i386 which reads almost identical but with /sbin/arping instead cat <<\EOF | patch -d ${vdir}/etc/sysconfig/network-scripts/ --- ifup-eth 2008-07-08 13:19:49.000000000 -0400 +++ ifup-eth-orig 2008-07-08 13:20:02.000000000 -0400 @@ -263,10 +263,10 @@ fi if ! LC_ALL=C ip addr ls ${REALDEVICE} | LC_ALL=C grep -q "${IPADDR}/${PREFIX}" ; then - if ! arping -q -c 2 -w 3 -D -I ${REALDEVICE} ${IPADDR} ; then - echo $"Error, some other host already uses address ${IPADDR}." - exit 1 - fi + #if ! arping -q -c 2 -w 3 -D -I ${REALDEVICE} ${IPADDR} ; then + # echo $"Error, some other host already uses address ${IPADDR}." + # exit 1 + #fi if ! ip addr add ${IPADDR}/${PREFIX} \ brd ${BROADCAST:-+} dev ${REALDEVICE} ${SCOPE} label ${DEVICE}; then echo $"Error adding address ${IPADDR} for ${DEVICE}." EOF