With CentOS 5 being released this really isn't needed but if you want to build a CentOS 4 xen server here is a sample config.
# Next two lines must be consecutive
install
nfs --server 192.168.0.1 --dir /home/kickstart/centos/4.5
lang en_US
langsupport --default=en_US.UTF-8 en_US.UTF-8
keyboard us
mouse none
skipx
text
timezone America/New_York
network --device=eth0 --bootproto=dhcp --hostname=xentemp1.example.com
rootpw --iscrypted hashgoeshere
authconfig --enableshadow --enablemd5
firewall --disabled
selinux --disabled
authconfig --enableshadow --enablemd5
bootloader --location=mbr
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --all --drives=sda --initlabel
part / --fstype ext3 --size=4096 --asprimary
part /usr --fstype ext3 --size=10240 --asprimary
part swap --size=4096 --asprimary
# part /backup --size=1 --grow --asprimary --fstype ext3
part pv.5 --size=1 --grow --asprimary
# Set up default volume group and logical volumes
volgroup my_volume_group pv.5
logvol /xen/swap --vgname=my_volume_group --size=4096 --name=swap
%packages --resolvedeps
e2fsprogs
grub
lvm2
kernel-smp
iptraf
nmap
screen
sysstat
SDL
bridge-utils
mc
lynx
wget
vim-enhanced
gcc
httpd
vnc
ntp
sendmail
-ppc64-utils
-irda-utils
-nfs-utils
-wireless-tools
-cups
-lksctp-tools
-kernel-hugemem
-qt
-eppp
-yp-tools
-libvorbis
-pam_smb
-isdn4k-utils
-oprofile
-desktop-file-utils
-pcmcia-cs
-nss_ldap
-python-ldap
-libmng
-libogg-devel
-dhcpv6_client
-rcs talk
-minicom
-cvs
-umb-scheme
-libogg
-libusb
-libusb-devel
-bluez-libs
-bluez-hcidump
-libwvstreams
-krb5-workstation
-wireless-tools
-bluez-bluefwmacs
-fontconfig
-xfs
%pre
%post
cat << EOF > /etc/yum.conf
[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=centos-release
tolerant=1
exactarch=1
retries=20
obsoletes=1
gpgcheck=1
exclude=centos-yumconf
EOF
cat << EOF > /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
EOF
cat << EOF > /etc/resolv.conf
domain foo.com
search foo.com
nameserver x.x.x.x
EOF
# Rewrite fstab
cat << EOF > /etc/fstab
# This file is edited by fstab-sync - see 'man fstab-sync' for details
/dev/sda1 / ext3 defaults 1 1
/dev/sda2 /usr ext3 defaults 1 2
/dev/sda3 swap swap defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
#/dev/sdb1 /backup ext3 defaults,noauto
/dev/my_volume_group/swap /xen/swap ext3 defaults 0 0
EOF
# Create needed directories
mkdir /dev/shm
mkdir /usr/src/centos
mkdir -p /xen/swap
mkdir -p /scripts/xen
mkdir /etc/backup
touch /etc/backup/backup.list
mkdir /etc/xen/disabled
# Get Xen scripts - These will go on layer3 eventually
#wget http://192.168.0.1/rpms/xen-scripts.tar.gz
#tar -C /scripts/xen -xzvf xen-scripts.tar.gz
# Install Xen RPMs
rpm -ivh http://192.168.0.1/rpms/xen-3.1.0-1.i386.rpm
rpm -ivh http://192.168.0.1/rpms/kernel-xen-2.6.18-3.1.0.i386.rpm
rpm -ivh http://192.168.0.1/rpms/kernel-xenU-2.6.9-42.0.3.EL.xs0.4.0.263.i686.rpm
rpm -ivh http://192.168.0.1/rpms/rdiff-backup-1.0.4-1.2.el4.rf.i386.rpm
# Install htop RPM
# rpm -ivh http://192.168.0.1/rpms/htop-0.6.4-1.el4.rf.i386.rpm
# Set up grub config file
cat << EOF > /boot/grub/menu.lst
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,0)
# kernel /boot/vmlinuz-version ro root=/dev/sda1
# initrd /boot/initrd-version.img
#boot=/dev/sda
default=0
timeout=6
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title Xen 3.1.0 (XenLinux 2.6)
root (hd0,0)
kernel /boot/xen-3.1.gz dom0_mem=262144
module /boot/vmlinuz-2.6.18-xen_3.1.0 ro root=LABEL=/ console=tty0
module /boot/initrd-2.6.18-xen_3.1.0.img
title CentOS-4 i386 (2.6.9-42.ELsmp)
root (hd0,0)
kernel /boot/vmlinuz-2.6.9-42.ELsmp ro root=LABEL=/ acpi=off
initrd /boot/initrd-2.6.9-42.ELsmp.img
EOF
# Turn needed stuff on
/sbin/chkconfig ntpd --level 345 on
/sbin/chkconfig httpd --level 345 on
/sbin/chkconfig xend --level 345 on
/sbin/chkconfig xendomains --level 345 on
/sbin/chkconfig crond --level 345 on
/sbin/chkconfig sendmail --level 345 on
# Services to turn off
/sbin/chkconfig portmap --level 345 off
/sbin/chkconfig nfslock --level 345 off
/sbin/chkconfig nfs --level 345 off
/sbin/chkconfig isdn --level 345 off
/sbin/chkconfig pcmcia --level 345 off
/sbin/chkconfig rpcidmapd --level 345 off
/sbin/chkconfig audit --level 345 off
/sbin/chkconfig cups --level 345 off
/sbin/chkconfig gpm --level 345 off
/sbin/chkconfig smartd --level 345 off
rm -fv /root/anaconda-ks.cfg
rpm --import /usr/share/rhn/RPM-GPG-KEY-centos4
/usr/bin/yum -y update
# Fix ntp config
# sed -i -e "s/0.pool.ntp.org/time.example.com/" /etc/ntp.conf
# Enable cron job for backups
#echo "Adding backup job to cron."
#echo -e "0\t4\t*\t*\t*\t/scripts/xen/xen-backup.sh" >> /var/spool/cron/root
#echo
# Add stats job
echo -e "*/5\t0\t0\t0\t/scripts/xen/report-stats.py > /var/www/htdocs/test.xml" >> /var/spool/cron/root
# Enable TCP Syncookies
echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
# Get vps templates
#wget -P /usr/src http://192.168.0.1/vserver-templates/xen/centos4.4-cpanel-template.tar.bz2
#wget -P /usr/src http://192.168.0.1/vserver-templates/xen/centos4.4-plain.tar.bz2
# Install Mr. Radar
# yum -y install php-mysql
# yum -c /usr/local/lp/configs/yum/yum.conf -y install mm3k-client-push
# Disable TLS -- needed to get rid of warning messages on boot
mv /lib/tls /lib/tls.off