#!/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
转载于:https://blog.51cto.com/jqbash/1315719