#!/usr/bin/env bash function check_lock() { if [ -e "/var/lock/vz-create.lock" ]; then echo "Lock file detected, euthanizing self." exit else touch /var/lock/vz-create.lock fi } function create_vg() { echo "Creating logical volume for $NAME" lvcreate -L 20G -n $NAME my_volume_group if [ $? != "0" ] then echo echo "Volume Group already exists!" echo "You must delete this host or use a different name before continuing." echo exit else echo "Formatting volume group, please wait." mkfs -t ext3 -q /dev/my_volume_group/$NAME echo "Mounting..." mount -t ext3 /dev/my_volume_group/$NAME /mnt fi } function get_data() { echo -n "What is the host name? " read NAME echo -n "IP Address? " read OLDIP echo -n "Netmask? " read NETMASK echo -n "Gateway? " read GATEWAY echo -n "Root Password? " read ROOTPW } function copy_template() { echo "Extracting template data..." tar xjpvf /usr/src/centos4-cpanel-template.tar.bz2 -C /mnt } function create_swap() { echo "Creating swap file..." dd if=/dev/zero of=/xen/swap/${NAME}.swap bs=1k seek=512k count=1 mkswap /xen/swap/${NAME}.swap } check_lock get_data create_vg create_swap copy_template echo "Creating config file..." cat << EOF > /etc/xen/auto/${NAME}.cfg kernel = "/boot/xenkernel" memory = 512 name = "${NAME}" vif = [ '' ] dhcp = "off" disk = ['phy:my_volume_group/${NAME},sda1,w', 'tap:aio:/xen/swap/${NAME}.swap,sda2,w'] root = "/dev/sda1 ro" EOF echo "Applying network config..." cat << EOF > /mnt/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static IPADDR=$OLDIP NETMASK=$NETMASK GATEWAY=$GATEWAY ONBOOT=yes TYPE=Ethernet EOF cat << EOF > /mnt/etc/sysconfig/network NETWORKING=yes HOSTNAME=$NAME EOF # Create MySQL config file # cp /mnt/usr/share/mysql/my-small.cnf /mnt/etc/my.cnf # Change Cpanel Settings #echo maildir=0 >> /var/cpanel/cpanel.config #echo mysqloldpass=1 >> /var/cpanel/cpanel.config # Set root password echo "Setting root password:" /scripts/xen/set-password.py $ROOTPW # Fix hosts file cat << EOF > /mnt/etc/hosts 127.0.0.1 localhost $IPADDR $NAME host EOF echo "All done, unmounting drive." umount /mnt rm -fv /var/lock/vz-create.lock echo $NAME >> /etc/backup/backup.list echo "Starting account, please wait." count="5" min="0" while [ $count != $min ]; do count=`expr $count - 1` echo -n "$count..." sleep 1 done xm create /etc/xen/auto/${NAME}.cfg