在运行脚本之前,请确保您已经安装了必要的依赖包,例如gcc,make,libssl-dev等。此外,请确保您具有root权限。
#!/bin/bash
# 安装主机还是备机?
echo -n "您要安装主机还是备机?请输入 m 或 b:"
read node_type
# 安装 Keepalived
echo "正在安装 Keepalived..."
apt-get update
apt-get install -y keepalived
# 配置主机
if [[ $node_type == "m" ]]; then
echo "正在配置主机..."
# 配置主 Keepalived 配置文件
cat <<EOF > /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_script check_nginx {
script "/usr/bin/killall -0 nginx"
interval 2
weight -20
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 101
virtual_ipaddress {
192.168.1.100
}
track_script {
check_nginx
}
}
EOF
# 启动 Keepalived 服务
systemctl start keepalived
# 检查主机状态
echo "正在检查主机状态..."
ping -c 3 192.168.1.100
if [[ $? -eq 0 ]]; then
echo "主机状态正常!"
else
echo "主机状态异常,请检查配置!"
fi
# 配置备机
else
echo "正在配置备机..."
# 配置备 Keepalived 配置文件
cat <<EOF > /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_script check_nginx {
script "/usr/bin/killall -0 nginx"
interval 2
weight -20
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
virtual_ipaddress {
192.168.1.100
}
track_script {
check_nginx
}
}
EOF
# 启动 Keepalived 服务
systemctl start keepalived
# 检查备机状态
echo "正在检查备机状态..."
ping -c 3 192.168.1.100
if [[ $? -eq 0 ]]; then
echo "备机状态正常!"
else
echo "备机状态异常,请检查配置!"
fi
fi
echo "安装和配置完成!"
仅供学习参考。