mirror of
https://github.com/samba-team/samba.git
synced 2025-01-11 05:18:09 +03:00
ctdb-eventscripts: Sanity check NAT gateway configuration
NAT gateway really can't operate unless most of the configuration variables are set. A check in delete_all() can be removed - strange that this isn't also done in the add case. Signed-off-by: Martin Schwenke <martin@meltin.net>
This commit is contained in:
parent
0953f5799c
commit
4ee4925d41
@ -14,6 +14,18 @@ loadconfig
|
|||||||
[ -n "$CTDB_NATGW_NODES" ] || exit 0
|
[ -n "$CTDB_NATGW_NODES" ] || exit 0
|
||||||
export CTDB_NATGW_NODES
|
export CTDB_NATGW_NODES
|
||||||
|
|
||||||
|
natgw_check_config ()
|
||||||
|
{
|
||||||
|
[ -r "$CTDB_NATGW_NODES" ] || \
|
||||||
|
die "error: CTDB_NATGW_NODES=${CTDB_NATGW_NODES} unreadable"
|
||||||
|
[ -n "$CTDB_NATGW_PUBLIC_IP" ] || \
|
||||||
|
die "Invalid configuration: CTDB_NATGW_PUBLIC_IP not set"
|
||||||
|
[ -n "$CTDB_NATGW_PUBLIC_IFACE" ] || \
|
||||||
|
die "Invalid configuration: CTDB_NATGW_PUBLIC_IFACE not set"
|
||||||
|
[ -n "$CTDB_NATGW_PRIVATE_NETWORK" ] || \
|
||||||
|
die "Invalid configuration: CTDB_NATGW_PRIVATE_NETWORK not set"
|
||||||
|
}
|
||||||
|
|
||||||
set_natgw_capability ()
|
set_natgw_capability ()
|
||||||
{
|
{
|
||||||
# Set NATGW capability depending on configuration
|
# Set NATGW capability depending on configuration
|
||||||
@ -28,9 +40,7 @@ delete_all() {
|
|||||||
_ip="${CTDB_NATGW_PUBLIC_IP%/*}"
|
_ip="${CTDB_NATGW_PUBLIC_IP%/*}"
|
||||||
_maskbits="${CTDB_NATGW_PUBLIC_IP#*/}"
|
_maskbits="${CTDB_NATGW_PUBLIC_IP#*/}"
|
||||||
|
|
||||||
[ -z "$CTDB_NATGW_PUBLIC_IFACE" ] || {
|
delete_ip_from_iface $CTDB_NATGW_PUBLIC_IFACE $_ip $_maskbits >/dev/null 2>&1
|
||||||
delete_ip_from_iface $CTDB_NATGW_PUBLIC_IFACE $_ip $_maskbits >/dev/null 2>&1
|
|
||||||
}
|
|
||||||
ip route del 0.0.0.0/0 metric 10 >/dev/null 2>/dev/null
|
ip route del 0.0.0.0/0 metric 10 >/dev/null 2>/dev/null
|
||||||
|
|
||||||
# Delete the masquerading setup from a previous iteration where we
|
# Delete the masquerading setup from a previous iteration where we
|
||||||
@ -86,10 +96,13 @@ ensure_natgwmaster ()
|
|||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
setup)
|
setup)
|
||||||
|
natgw_check_config
|
||||||
set_natgw_capability
|
set_natgw_capability
|
||||||
;;
|
;;
|
||||||
|
|
||||||
startup)
|
startup)
|
||||||
|
natgw_check_config
|
||||||
|
|
||||||
# Error if CTDB_NATGW_PUBLIC_IP is listed in public addresses
|
# Error if CTDB_NATGW_PUBLIC_IP is listed in public addresses
|
||||||
grep -q "^$CTDB_NATGW_PUBLIC_IP[[:space:]]" "${CTDB_PUBLIC_ADDRESSES:-/etc/ctdb/public_addresses}" && \
|
grep -q "^$CTDB_NATGW_PUBLIC_IP[[:space:]]" "${CTDB_PUBLIC_ADDRESSES:-/etc/ctdb/public_addresses}" && \
|
||||||
die "ERROR: NATGW configured to use a public address. NATGW must not use a public address."
|
die "ERROR: NATGW configured to use a public address. NATGW must not use a public address."
|
||||||
@ -99,6 +112,8 @@ case "$1" in
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
updatenatgw|ipreallocated)
|
updatenatgw|ipreallocated)
|
||||||
|
natgw_check_config
|
||||||
|
|
||||||
mypnn=$(ctdb pnn | cut -d: -f2)
|
mypnn=$(ctdb pnn | cut -d: -f2)
|
||||||
|
|
||||||
set_natgw_capability
|
set_natgw_capability
|
||||||
@ -117,10 +132,12 @@ case "$1" in
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
shutdown|removenatgw)
|
shutdown|removenatgw)
|
||||||
|
natgw_check_config
|
||||||
delete_all
|
delete_all
|
||||||
;;
|
;;
|
||||||
|
|
||||||
monitor)
|
monitor)
|
||||||
|
natgw_check_config
|
||||||
set_natgw_capability
|
set_natgw_capability
|
||||||
ensure_natgwmaster "$1"
|
ensure_natgwmaster "$1"
|
||||||
;;
|
;;
|
||||||
|
Loading…
Reference in New Issue
Block a user