前言
Keepalived的作用是检测服务器的状态,如果有一台被keepalived监控的服务器宕机或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。是保证服务集群高可用的优秀解决方案的软件。keepalived+lvs是目前最常用的tcp协议的负载均衡,代理,高可用的解决方案。
细节
- 目前只支持 yum命令的linux版本(centos)
- 目前只支持 keepalived 的 1.3 以上的版本
- 执行命令需要 root权限,目前没有做权限校验。
- 安装脚本 必须与 安装的 tar file 与 文件夹在同一个目录
- 同级目录必须要有 keepalived.conf 文件,否则 安装操作是无法执行的
- 安装的时候,请停止 已启动 keepalived 进程 否者安装失败。
操作
remove
主要是用来 删除 install与deploy 安装的文件与配置。 不会删除,yum安装的软件
install
主要是从jar包开始安装。默认删除压缩文件夹 ./keepalived-automatic.sh install keepalived-1.3.2.tar.gz
deploy
主要从 文件夹开始安装,不会删除文件夹 ./keepalived-automatic.sh deploy keepalived-1.3.2
代码
#!/bin/bash
conf(){
if [ ! -f "keepalived.conf" ];then
echo "keepalived.conf is existence"
exit;
fi
mkdir -p /etc/keepalived
cp ./keepalived.conf /etc/keepalived/
yum -y install openssl-devel
yum -y install ipvsadm
modprobe -q ip_vs||true
#这里是因为,如果有keepalived运行,重新安装就会有警告
#systemctl daemon-reload
}
install(){
conf
shift
if [ ! -f $1 ];then
echo "$1 is existence"
exit;
fi
tar -zxvf $1
directory=`echo $1 | awk '{split($0,a,".tar");print a[1]}'`
cd $directory
./configure --prefix=/usr/local/keepalived
make && make install
cp ./keepalived/etc/init.d/keepalived /etc/init.d/
#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig
cp /usr/local/keepalived/sbin/keepalived /usr/sbin
rm -fr ../$directory
chmod 775 /etc/init.d/keepalived
}
deploy(){
conf
shift
cd $1
cp ./init.d/keepalived /etc/init.d/
cp ./sysconfig/keepalived /etc/sysconfig
cp ./sbin/keepalived /usr/sbin
}
case "$1" in
remove)
remove
;;
install)
install $*
;;
deploy)
deploy $*
;;
*)
echo "Usage: $0 {remove|install|deploy}"
RETVAL=1
esac
exit $RETVAL