HAproxyKeepalived一键安装脚本

#!/bin/bash
##################################
haproxy_path=/usr/local/haproxy
haproxy_conf=/usr/local/haproxy/conf/haproxy.cfg
#############haproxy-install#####################
cd /tmp
tar xvf haproxy-1.4.*.tar.gz
if [ $? -eq 0 ];then
echo "haproxy tar ok"
else
echo "haproxy tar no"
exit
fi
sleep 5
yum install gcc openssl openssl-devel make kernel-devel popt-devel openssl -y
cd /tmp/haproxy-*
make TARGET=linux26 PREFIX=$haproxy_path install
if [ $? -eq 0 ];then
echo "haproxy install ok"
else
echo "haproxy install no"
exit
fi
cd $haproxy_path
mkdir conf logs
touch $haproxy_path/conf/haproxy.cfg
#################haproxy.cfg#########################
echo -e "global\n\tlog 127.0.0.1 local0\n\tmaxconn 65535\n\tchroot $haproxy_path\n\tuser nobody\n\tgroup nobody\n\tdaemon\n\tnbproc 8\n\tpidfile $haproxy_path/haproxy.pid\n" > $haproxy_conf
echo -e "\ndefaults\n\tlog 127.0.0.1 local3\n\tmode http\n\toption httplog\n\toption dontlognull\n\toption redispatch\n\tretries 2\n\tmaxconn 2000\n\tcontimeout 5000\n\tclitimeout 50000\n\tsrvtimeout 50000" >> $haproxy_conf
echo -e "\nlisten web 0.0.0.0:80\n\tmode http\n\tbalance roundrobin\n\tcookie SERVERID insert indirect nocache\n\toption httplog\n\tlog global\n\toption httpchk HEAD /index.html HTTP/1.0" >> $haproxy_conf
read -p "Requires several server " server
for ((i=1;i<=$server;i++))
do
read -p "server ip " ip
echo -e "server server$i $ip:80 cookie $i check inter 2000 rise 2 fall 5" >> $haproxy_conf
done
###########################keepalived###############################
mandir=/usr/local/src/man
kernel=$(uname -r)
keepalived_conf=/etc/keepalived/keepalived.conf
################################
cd /tmp
tar -xvf keepalived*.tar.gz
cd /tmp/keepalived-*
#############keepalived make##################
./configure --prefix=/ --mandir=$mandir --with-kernel-dir=/usr/src/kernels/$kernel*
if [ $? -eq 0 ];then
make
if [ $? -eq 0 ];then
make install
if [ $? -eq 0 ];then
echo "keepalived ok"
else
echo "keepalived no"
exit
fi
else
echo "keeplaived make no"
exit
fi
else
echo "keelalived make no"
fi

touch /etc/keepalived/keepalived.conf
########################################################
read -p "$read_p NIC binding " network
####################keepalived.conf#####################
#############Global configuration#######################
echo -e " ! Configuration File for keepalived\nglobal_defs {\n\tnotification_email {\n\[email protected]\n\t}\n\tnotification_email_from [email protected]\n\tsmtp_server 127.0.0.1\n\tsmtp_connect_timeout 30\n\trouter_id HAproxy\n}" > $keepalived_conf
############Virtual IP Configuration####################
read -p "Requires several server " server
for ((a=1;a<=$server;a++))
do
read -p "$read_p MASTER of BACKUP " states
read -p "$read_p priority " priority
read -p "$read_p vip address " vip
echo -e "vrrp_instance VI_$a {\n\tstate $states\n\tinterface $network\n\tvirtual_router_id 52\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$vip/24 dev $network\n\t}\n}" >> $keepalived_conf
done
#######################################################
/usr/local/haproxy/sbin/haproxy -f $haproxy_conf
/etc/rc.d/init.d/keepalived restart
#########################haproxy-keepalived.sh##############################
touch /etc/rc.d/haproxy-keepalived.sh
echo -e '#!/bin/bash\nwhile\t:\ndo\n haproxypid=`ps -C haproxy --no-header | wc -l`\n\tif [ $haproxypid -eq 0 ];then\n\t\t/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg\n\t\tsleep 5\n\thapropid=`ps -C haproxy --no-header | wc -l`\n\t\tif [ $hapropid -eq 0 ];then\n\t\t\t\t/etc/init.d/keepalived stop\n\t\tfi\n\tfi\n\tsleep 5\n proxypid=`ps -C haproxy --no-header | wc -l`\n\tif (($proxypid!= 0));then\n\t\t/etc/init.d/keepalived start\n\tfi\n\tsleep 5\ndone' > /etc/rc.d/haproxy.sh
#############################################################################
chmod +x /etc/rc.d/haproxy.sh
/usr/bin/nohup /etc/rc.d/haproxy.sh &
rc_local=/etc/rc.local
echo '/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg' >> $rc_local
echo '/etc/rc.d/init.d/keepalived start' >> $rc_local
echo '/usr/bin/nohup /etc/rc.d/haproxy.sh &' >> $rc_local
############################################################################

本文出自 “此身 此时 此地” 博客,请务必保留此出处http://jqbash.blog.51cto.com/7172316/1315722

更多相关文章
  • win10激活工具一键激活方法2则大家可以来了解一下,今日小编还将提供win10一键激活工具下载,下文提到的两种方法都是免费的哦 win10激活工具一键激活方法2则大家可以来了解一下,今日小编还将提供win10一键激活工具下载,下文提到的两种方法都是免费的哦. 法一.KMSpico 软件名称:win ...
  •  Lolipop源码已经放出有些日子了,我发现google在Android 5.0上修复了一个高危漏洞,利用该漏洞可以发送任意广播:不仅可以发送系统保护级别的广播.还可以无视receiver的android:exported=false.android:permisson=XXX 属性的限制. 简直 ...
  • http://www.lintcode.com/en/problem/longest-increasing-continuous-subsequence-ii/# Give you an integer matrix (with row size n, column size m),find the ...
  • 嘿嘿, 逗比们好,今天我们来做一个android上的标签云效果,额, 虽然还不是 很完美,但是已经足够可以展现标签云的效果了,首先来看看效果吧. 额, 录屏只能录到这个份上了,凑活着看吧.今天我们就来实现一下这个效果, 这次我选择直接继承view来, 什么? 这样的效果不是SurfaceView擅长 ...
  • 昨天我们已经报道过诺基亚将会发布自家首款WP8机型Lumia 920和Lumia 820,而最新消息则指除了这两款中高端机型,诺基亚还将推出一款低端WP8的机型,代号为"Zeal".今晚诺基亚将联合微软一起召开发布会,而这次发布会的主题无疑是公布诺基亚自家的WP8手机. Lumi ...
  • 在一些设计上,设计师会要求我们的文字以45度显示,或者135度显示(如下图"抽奖"),可是android本身并没有提供TextView在布局文件中实现旋转的标签,这时候就需要我们去自定义TextView,并且重写onDraw()方法实现效果. 下面,让我们去实现这个效果吧. 首先 ...
一周排行
  • 1.     搭建环境   安装 1)谷歌浏览器 2)jdk-7u67-windows-i586.exe 3)Tomcat7 4)NavicatforMySQL   两种方式: ftp://172.21.95.99/ ...
  • 所谓焦点就是用户当前正在操作的对象,可以是某个元素,也可能是某个浏览器中的tab或window.比如用鼠标点击输入框,那么输入框就会成为焦点.使用键盘上的Tab键,又可以把焦点转移到另外一个元素或浏览器的其他区域.通 ...
  • 易网科技讯 12月5日消息,诺基亚在"2012年中国移动全球开发者大会"期间宣布推出其首款Windows Phone 8手机Lumia 920T移动定制版,裸机售价4599元.在机型配置方面,诺基 ...
  • 弹出DIV是采用JQUERY+CSS联合控制的,JQUERY弹出窗口,CSS控制层的显示和效果 页面代码: [html] <%@ page language="java" contentTy ...
  • 随着Internet互联网络带宽的增加和多种DDOS黑客工具的不断发布,DDOS拒绝服务攻击的实施越来越容易,DDOS攻击事件正在成上升趋势. 近日据业内人士反映,近日上海地区众多网站或机房均遭到了Ddos攻击,其中 ...
  • 下面是一个我自己用的设置MYSQL的安全的魔兽世界私服的单机设置办法.这个是针对G内存来设置的.提升MYSQL的吞吐量.实现MYSQL的稳定,让多人在游戏里面玩的时候不至于由于MYSQL而导致很卡 [clien ...
  • 平时使用单例的情况很多,至于为什么使用在此文章中就不在重复,百度.谷歌一大堆.而单例模式分为立即加载和延迟加载两种,这两种在多线程下都存在安全问题,因此很多时候我们会使用sychronized关键字或者代码块来保证我 ...
  •  
  •   <Window x:Class="Demo_window.Window2"xmlns="http://schemas.microsoft.com/winfx/2006/xaml ...
  • 不知道wp8升级wp8.1预览版步骤?没关系,下文将为大家讲解wp8怎么升级wp8.1预览版,微软已经发布了windows phone8.1预览版系统,备受好评哦~有兴趣的机友可以试着升级一下 什么是开发者预览版 微 ...