#!/bin/sh # Eventscript for CTDB to cope with externally managed public IP addresses # If DisableIPFailover is set: # # * 10.interface must be disabled. # * For connection tracking/killing to work this script must be enabled. [ -n "$CTDB_BASE" ] || \ CTDB_BASE=$(d=$(dirname "$0") ; cd -P "$d" ; dirname "$PWD") . "${CTDB_BASE}/functions" loadconfig if [ -z "$CTDB_PUBLIC_ADDRESSES" ] ; then exit 0 fi if [ ! -f "$CTDB_PUBLIC_ADDRESSES" ] ; then if [ "$1" = "init" ]; then echo "No public addresses file found. Nothing to do for 10.interfaces.external" fi exit 0 fi takeover_assigned_ips () { _pnn=$(ctdb_get_pnn) $CTDB -X ip | awk -F'|' '{print $2}' | while read ip ; do _ip_details=$(ip_maskbits_iface "$ip") if [ -n "$_ip_details" ] ; then echo "Assigning $ip to this node (${_pnn})" $CTDB moveip "$ip" "$_pnn" fi done } ctdb_check_args "$@" case "$1" in startup) takeover_assigned_ips ;; esac exit 0