Views
From Wiki
Jump to: navigation, search

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
Personal tools