运维之自动安装keepalived

前言

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

猜你喜欢

转载自my.oschina.net/u/1261452/blog/1810116
今日推荐