運維之自動安裝keepalived

前言

Keepalived的做用是檢測服務器的狀態,若是有一臺被keepalived監控的服務器宕機或工做出現故障,Keepalived將檢測到,並將有故障的服務器從系統中剔除,同時使用其餘服務器代替該服務器的工做,當服務器工做正常後Keepalived自動將服務器加入到服務器羣中,這些工做所有自動完成,不須要人工干涉,須要人工作的只是修復故障的服務器。是保證服務集羣高可用的優秀解決方案的軟件。keepalived+lvs是目前最經常使用的tcp協議的負載均衡,代理,高可用的解決方案。linux

細節

  • 目前只支持 yum命令的linux版本(centos)
  • 目前只支持 keepalived 的 1.3 以上的版本
  • 執行命令須要 root權限,目前沒有作權限校驗。
  • 安裝腳本 必須與 安裝的 tar file 與 文件夾在同一個目錄
  • 同級目錄必需要有 keepalived.conf 文件,不然 安裝操做是沒法執行的
  • 安裝的時候,請中止 已啓動 keepalived 進程 否者安裝失敗。

操做

remove

主要是用來 刪除 install與deploy 安裝的文件與配置。 不會刪除,yum安裝的軟件shell

install

主要是從jar包開始安裝。默認刪除壓縮文件夾 ./keepalived-automatic.sh install keepalived-1.3.2.tar.gzcentos

deploy

主要從 文件夾開始安裝,不會刪除文件夾 ./keepalived-automatic.sh deploy keepalived-1.3.2bash

代碼

#!/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
相關文章
相關標籤/搜索