跳至主要內容

keepalived源码编译安装

小于 1 分钟约 236 字

keepalived源码编译安装

安装依赖软件包

# yum group install "Development Tools" -y
yum install -y libnl libnl-devel libnfnetlink-devel popt-devel openssl openssl-devel  gcc make

下载软件包

cd /usr/local/src/
# wget -O keepalived-2.0.20.tar.gz http://mirrors.lead.cn/source/keepalived/keepalived-2.0.20.tar.gz 
wget -O keepalived-2.0.20.tar.gz http://download-soft.lead.cn/source/keepalived/keepalived-2.0.20.tar.gz 

解压编译

tar xf keepalived-2.0.20.tar.gz 
cd keepalived-2.0.20
./configure --prefix=/usr/local/keepalived-2.0.20
make && make install

配置操作

# 创建软连接
ln -s /usr/local/keepalived-2.0.20 /usr/local/keepalived
# 拷贝配置
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/

设置服务自启动

cat > /usr/lib/systemd/system/keepalived.service <<EOF
[Unit]
Description=LVS and VRRP High Availability Monitor
After=network-online.target syslog.target 
Wants=network-online.target 

[Service]
Type=forking
PIDFile=/run/keepalived.pid
KillMode=process
EnvironmentFile=-/etc/sysconfig/keepalived
ExecStart=/usr/sbin/keepalived $KEEPALIVED_OPTIONS
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
EOF

systemctl enable keepalived

创建nginx配置文件

cat > /etc/keepalived/check_nginx.sh <<EOF
#!/bin/bash

# curl -IL http://localhost/member/login.htm
# curl --data "memberName=fengkan&password=22" http://localhost/member/login.htm

count=0
for (( k=0; k<2; k++ ))
do
    check_code=$( curl --connect-timeout 3 -sL -w "%{http_code}\\n" http://localhost/index.html -o /dev/null )
    if [ "$check_code" != "200" ]; then
        count=$(expr $count + 1)
        sleep 3
        continue
    else
        count=0
        break
    fi
done
if [ "$count" != "0" ]; then
    systemctl stop keepalived
    exit 1
else
    exit 0
fi
EOF