yum -y install libnl libnl-devel libnfnetlink-devel psmisc
以下步骤可以创建一个 keepalived.sh 脚本,然后复制以下内容,执行脚本即可一键执行
wget http://www.keepalived.org/software/keepalived-1.4.5.tar.gz
tar -zxf keepalived-1.4.5.tar.gz
cd keepalived-1.4.5
./configure --prefix=/usr/local/keepalived
make && make install
cp keepalived/etc/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived/
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
echo "/etc/init.d/keepalived start" >> /etc/rc.local
chmod +x /etc/rc.d/init.d/keepalived
chkconfig keepalived on
cp /etc/keepalived/keepalived.conf cp /etc/keepalived/keepalived.conf.bak
! Configuration File for keepalived
global_defs {
router_id node-3
}
vrrp_script check_nginx
{
script "/etc/keepalived/check_nginx.sh"
interval 2 # 2s执行一次
}
vrrp_instance VI_1 {
state MASTER # 从节点改成 BACKUP
interface ens18 # 绑定的网卡
virtual_router_id 66 # 同一实例下virtual_router_id要相同
priority 100 # master 的权重要高于 backup
advert_int 1 # 主从心跳检测时间,单位s
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.113.2.88 # 设置VIP,可以多个,一行一个
}
track_script {
check_nginx # vrrp_script 一定要写在前面,不然不会执行,踩过坑
}
}
#!/bin/bash -x
ACTIVE=`ps -C nginx --no-header | wc -l`
if [ $ACTIVE -eq 0 ]; then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ]; then
killall keepalived
exit 1
else
exit 0
fi
else
exit 0
fi