#!/bin/bash
########################################
keepalived=keepalived*.tar.gz
keepalived_dir=/usr/local/keepalived
mandir=/usr/local/share/man/
keepalived_date=/etc/keepalived
keepalived_conf=/etc/keepalived/keepalived.conf
#########################################
yum install -y ipvsadm kernel-devel popt-devel openssl-devel gcc
cd /tmp
tar -xvf $keepalived > $install_log
if [ $? -eq 0 ];then
    echo "keepalived tar ok"
else   
    echo "keepalived tar no"
fi
sleep 5
cd /tmp/keepalived*
    kernel=$(uname -r)
    ./configure --prefix=$keepalived_dir --mandir=$mandir --with-kernel-dir=/usr/src/kernels/$kernel*
    if [ $? -eq 0 ];then
        make
        sleep 10
        if [ $? -eq 0 ];then
        make install
        fi
            if [ $? -eq 0 ];then
                echo "keepalived make ok"
            else
                echo "keepalived make no"
            fi
    sleep 5
    else
        echo "Configuration error"
    fi
sleep 6
    if [ ! -d $keepalived_date ];then
        mkdir -p $keepalived_date
    fi
########################################################
cd $keepalived_date
###################keepalived.conf#####################
#############Global configuration#######################
echo -e " ! Configuration File for keepalived\nglobal_defs {\n\tnotification_email {\n\tjqbash@gmail.com\n\t}\n\tnotification_email_from root@localhost\n\tsmtp_server 127.0.0.1\n\tsmtp_connect_timeout 30\n\trouter_id lvs\n}" > $keepalived_conf
########################################################
read -p "Requires several load balancing " lb
for ((a=1;a<=$lb;a++))
do
read -p "MASTER of BACKUP " state
read -p "virtual_router_id " id
read -p "priority " priority
read -p "NIC binding " network
read -p "vip address " ip
############Virtual IP Configuration####################
echo -e "vrrp_instance VI_$a {\n\tstate  $states\n\tinterface  $network\n\tvirtual_router_id $id\n\t priority $priority\n\tadvert_int 1\n\tauthentication {\n\tauth_type PASS\n\tauth_pass tdoa\n\t}\n\tvirtual_ipaddress {\n\t$ip/24 dev $network\n\t}\n}" >> $keepalived_conf
###########Real Server Configuration####################
echo -e "virtual_server $ip 80 {\n\tdelay_loop 6\n\tlb_algo  rr\n\tlb_kind DR\n\tpersistence_timeout 50\n\tprotocol TCP\n\t" >> $keepalived_conf
read -p "Requires several reserver " server
for ((i=1;i<=$server;i++))
do
        read -p "reserver IP " rip
        echo -e "real_server $rip {\n\tweight 100\n\t\tTCP_CHECK {\n\t\t\tconnect_timeout 3\n\t\t\tnb_get_retry 3\n\t\t\tdelay_before_retry 3\n\t\t\tconnect_port 80\n\t\t\t}\n\t}" >> $keepalived_conf
done
echo } >> $keepalived_conf
done
##################################################
cp $keepalived_dir/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp $keepalived_dir/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
service keepalived restart