162 lines
3.0 KiB
Bash
Executable File
162 lines
3.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -o pipefail
|
|
|
|
echo -ne "[debug]: getting IP address ... "
|
|
IP_ADDR=$( ip addr show eth0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1 )
|
|
if [ $? -ne 0 ] ; then
|
|
echo "FAIL"
|
|
exit 1
|
|
else
|
|
echo "OK"
|
|
fi
|
|
|
|
echo -ne "[debug]: adding virtual service ${IP_ADDR}:80 ... "
|
|
ipvsadm -A -t ${IP_ADDR}:80 -s rr
|
|
if [ $? -ne 0 ] ; then
|
|
echo "FAIL"
|
|
exit 1
|
|
else
|
|
echo "OK"
|
|
fi
|
|
|
|
for i in {1..3}; do
|
|
echo -ne "[debug]: adding real server 192.168.100.10${i}:80 ... "
|
|
ipvsadm -a -t ${IP_ADDR}:80 -r 192.168.100.10${i}:80 -w 1 -m
|
|
if [ $? -ne 0 ] ; then
|
|
echo "FAIL"
|
|
exit 1
|
|
else
|
|
echo "OK"
|
|
fi
|
|
done
|
|
|
|
echo -ne "[debug]: checking ipvs is populated ... "
|
|
ipvsadm -l -n | grep -q -E "(${IP_ADDR}|192.168.100.10)"
|
|
if [ $? -ne 0 ] ; then
|
|
echo "FAIL"
|
|
exit 1
|
|
else
|
|
echo "OK"
|
|
fi
|
|
|
|
for mod in ip_vs_rr ip_vs; do
|
|
echo -ne "[debug]: checking for module ${mod} ... "
|
|
grep -q "^${mod} " /proc/modules
|
|
if [ $? -ne 0 ] ; then
|
|
echo "FAIL"
|
|
exit 1
|
|
else
|
|
echo "OK"
|
|
fi
|
|
done
|
|
|
|
echo -ne "[debug]: saving ipvsadm configuration ... "
|
|
ipvsadm-save -n > /etc/sysconfig/ipvsadm
|
|
if [ $? -ne 0 ] ; then
|
|
echo "FAIL"
|
|
exit 1
|
|
else
|
|
echo "OK"
|
|
fi
|
|
|
|
echo -ne "[debug]: clearing ipvsadm configuration ... "
|
|
ipvsadm -C
|
|
if [ $? -ne 0 ] ; then
|
|
echo "FAIL"
|
|
exit 1
|
|
else
|
|
echo "OK"
|
|
fi
|
|
|
|
echo -ne "[debug]: checking ipvs is clear ... "
|
|
ipvsadm -l -n | grep -E "(${IP_ADDR}|192.168.100.10)"
|
|
if [ $? -eq 0 ] ; then
|
|
echo "FAIL"
|
|
exit 1
|
|
else
|
|
echo "OK"
|
|
fi
|
|
|
|
for mod in ip_vs_rr ip_vs; do
|
|
echo -ne "[debug]: removing module ${mod} ... "
|
|
modprobe -r ${mod}
|
|
if [ $? -ne 0 ] ; then
|
|
echo "FAIL"
|
|
exit 1
|
|
else
|
|
echo "OK"
|
|
fi
|
|
done
|
|
|
|
for mod in ip_vs_rr ip_vs; do
|
|
echo -ne "[debug]: checking for no ${mod} module ... "
|
|
grep -q "^${mod} " /proc/modules
|
|
if [ $? -eq 0 ] ; then
|
|
echo "FAIL"
|
|
exit 1
|
|
else
|
|
echo "OK"
|
|
fi
|
|
done
|
|
|
|
echo -ne "[debug]: restoring ipvsadm configuration ... "
|
|
ipvsadm-restore < /etc/sysconfig/ipvsadm
|
|
if [ $? -ne 0 ] ; then
|
|
echo "FAIL"
|
|
exit 1
|
|
else
|
|
echo "OK"
|
|
fi
|
|
|
|
echo -ne "[debug]: checking ipvs is populated ... "
|
|
ipvsadm -l -n | grep -q -E "(${IP_ADDR}|192.168.100.10)"
|
|
if [ $? -ne 0 ] ; then
|
|
echo "FAIL"
|
|
exit 1
|
|
else
|
|
echo "OK"
|
|
fi
|
|
|
|
for mod in ip_vs_rr ip_vs; do
|
|
echo -ne "[debug]: checking for module ${mod} ... "
|
|
grep -q "^${mod} " /proc/modules
|
|
if [ $? -ne 0 ] ; then
|
|
echo "FAIL"
|
|
exit 1
|
|
else
|
|
echo "OK"
|
|
fi
|
|
done
|
|
|
|
for i in {3..1}; do
|
|
echo -ne "[debug]: removing real server 192.168.100.10${i}:80 ... "
|
|
ipvsadm -d -t ${IP_ADDR}:80 -r 192.168.100.10${i}:80
|
|
if [ $? -ne 0 ] ; then
|
|
echo "FAIL"
|
|
exit 1
|
|
else
|
|
echo "OK"
|
|
fi
|
|
done
|
|
|
|
echo -ne "[debug]: removing virtual service ${IP_ADDR}:80 ... "
|
|
ipvsadm -D -t ${IP_ADDR}:80
|
|
if [ $? -ne 0 ] ; then
|
|
echo "FAIL"
|
|
exit 1
|
|
else
|
|
echo "OK"
|
|
fi
|
|
|
|
echo -ne "[debug]: checking ipvs is clear ... "
|
|
ipvsadm -l -n | grep -E "(${IP_ADDR}|192.168.100.10)"
|
|
if [ $? -eq 0 ] ; then
|
|
echo "FAIL"
|
|
exit 1
|
|
else
|
|
echo "OK"
|
|
fi
|
|
|
|
exit 0
|