summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Schwenke <martin@meltin.net>2018-03-08 15:11:51 +1100
committerAmitay Isaacs <amitay@samba.org>2018-03-19 02:23:19 +0100
commit6ecddd4f723a034f945ff2bad49376f2dd2c8c62 (patch)
tree78dbbdc2a6071ae2280c363836f24112b599de86
parentb6127a6384de9bddda69a49437d656bb1bcd542a (diff)
downloadsamba-6ecddd4f723a034f945ff2bad49376f2dd2c8c62.tar.gz
ctdb-scripts: Drop CTDB_PUBLIC_ADDRESSES configuration option
This option adds a lot of unnecessary complexity to scripts. Configuration should go in $CTDB_BASE, either directly or via a symlink, so simplify by using the default location. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
-rwxr-xr-xctdb/config/ctdb-crash-cleanup.sh8
-rw-r--r--ctdb/config/ctdbd.conf3
-rwxr-xr-xctdb/config/ctdbd_wrapper1
-rwxr-xr-xctdb/config/events.d/10.interface14
-rwxr-xr-xctdb/config/events.d/11.natgw6
-rwxr-xr-xctdb/config/events.d/13.per_ip_routing2
-rwxr-xr-xctdb/config/functions2
-rw-r--r--ctdb/doc/ctdb.7.xml24
-rw-r--r--ctdb/doc/ctdbd.conf.5.xml11
-rw-r--r--ctdb/doc/examples/cluster.conf2
-rw-r--r--ctdb/doc/examples/natgw.conf2
-rwxr-xr-xctdb/tests/complex/18_ctdb_reloadips.sh3
-rwxr-xr-xctdb/tests/eventscripts/10.interface.init.001.sh2
-rwxr-xr-xctdb/tests/simple/18_ctdb_reloadips.sh3
14 files changed, 33 insertions, 50 deletions
diff --git a/ctdb/config/ctdb-crash-cleanup.sh b/ctdb/config/ctdb-crash-cleanup.sh
index 22b0ce86f5f..2ab8e527d32 100755
--- a/ctdb/config/ctdb-crash-cleanup.sh
+++ b/ctdb/config/ctdb-crash-cleanup.sh
@@ -16,11 +16,9 @@ fi
loadconfig ctdb
-[ -n "$CTDB_PUBLIC_ADDRESSES" ] || \
- CTDB_PUBLIC_ADDRESSES="$CTDB_BASE/public_addresses"
-
-[ -f "$CTDB_PUBLIC_ADDRESSES" ] || \
- die "No public addresses file found. Can't clean up."
+if [ ! -f "$CTDB_BASE/public_addresses" ] ; then
+ die "No public addresses file found. Can't clean up."
+fi
drop_all_public_ips 2>&1 | script_log "ctdb-crash-cleanup.sh"
diff --git a/ctdb/config/ctdbd.conf b/ctdb/config/ctdbd.conf
index 2d525c528fd..f8c56d078bb 100644
--- a/ctdb/config/ctdbd.conf
+++ b/ctdb/config/ctdbd.conf
@@ -11,9 +11,6 @@
# List of nodes in the cluster. Default is below.
# CTDB_NODES=/etc/ctdb/nodes
-# List of public addresses for providing NAS services. No default.
-# CTDB_PUBLIC_ADDRESSES=/etc/ctdb/public_addresses
-
# What services should CTDB manage? Default is none.
# CTDB_MANAGES_SAMBA=yes
# CTDB_MANAGES_WINBIND=yes
diff --git a/ctdb/config/ctdbd_wrapper b/ctdb/config/ctdbd_wrapper
index 79e130d39ab..d65d53c78fa 100755
--- a/ctdb/config/ctdbd_wrapper
+++ b/ctdb/config/ctdbd_wrapper
@@ -95,7 +95,6 @@ build_ctdb_options ()
maybe_set "--logging" "$CTDB_LOGGING"
maybe_set "--nlist" "$CTDB_NODES"
maybe_set "--listen" "$CTDB_NODE_ADDRESS"
- maybe_set "--public-addresses" "$CTDB_PUBLIC_ADDRESSES"
maybe_set "--public-interface" "$CTDB_PUBLIC_INTERFACE"
maybe_set "--dbdir" "$CTDB_DBDIR"
maybe_set "--dbdir-persistent" "$CTDB_DBDIR_PERSISTENT"
diff --git a/ctdb/config/events.d/10.interface b/ctdb/config/events.d/10.interface
index f2d44dad125..7093470e8ea 100755
--- a/ctdb/config/events.d/10.interface
+++ b/ctdb/config/events.d/10.interface
@@ -12,16 +12,14 @@
loadconfig
-[ -z "$CTDB_PUBLIC_ADDRESSES" ] && {
- CTDB_PUBLIC_ADDRESSES="${CTDB_BASE}/public_addresses"
-}
+ctdb_public_addresses="${CTDB_BASE}/public_addresses"
-[ ! -f "$CTDB_PUBLIC_ADDRESSES" ] && {
- if [ "$1" = "init" ]; then
- echo "No public addresses file found. Nothing to do for 10.interfaces"
+if [ ! -f "$ctdb_public_addresses" ]; then
+ if [ "$1" = "init" ] ; then
+ echo "No public addresses file found"
fi
exit 0
-}
+fi
# This sets $all_interfaces as a side-effect.
get_all_interfaces ()
@@ -29,7 +27,7 @@ get_all_interfaces ()
# Get all the interfaces listed in the public_addresses file
all_interfaces=$(sed -e "s/^[^\t ]*[\t ]*//" \
-e "s/,/ /g" \
- -e "s/[\t ]*$//" "$CTDB_PUBLIC_ADDRESSES")
+ -e "s/[\t ]*$//" "$ctdb_public_addresses")
# Add some special interfaces if they're defined
[ "$CTDB_PUBLIC_INTERFACE" ] && all_interfaces="$CTDB_PUBLIC_INTERFACE $all_interfaces"
diff --git a/ctdb/config/events.d/11.natgw b/ctdb/config/events.d/11.natgw
index b256d37bcec..f2e17a7f9e9 100755
--- a/ctdb/config/events.d/11.natgw
+++ b/ctdb/config/events.d/11.natgw
@@ -197,9 +197,9 @@ startup)
# Error if CTDB_NATGW_PUBLIC_IP is listed in public addresses
ip_pat=$(echo "$CTDB_NATGW_PUBLIC_IP" | sed -e 's@\.@\\.@g')
- if grep -q "^${ip_pat}[[:space:]]" \
- "${CTDB_PUBLIC_ADDRESSES:-${CTDB_BASE}/public_addresses}" ; then
- die "ERROR: CTDB_NATGW_PUBLIC_IP same as a public address"
+ ctdb_public_addresses="${CTDB_BASE}/public_addresses"
+ if grep -q "^${ip_pat}[[:space:]]" "$ctdb_public_addresses" ; then
+ die "ERROR: CTDB_NATGW_PUBLIC_IP same as a public address"
fi
# do not send out arp requests from loopback addresses
diff --git a/ctdb/config/events.d/13.per_ip_routing b/ctdb/config/events.d/13.per_ip_routing
index c213583b302..2e080a1caff 100755
--- a/ctdb/config/events.d/13.per_ip_routing
+++ b/ctdb/config/events.d/13.per_ip_routing
@@ -207,7 +207,7 @@ get_config_for_ip ()
if [ "$_ip" = "$_i" ] ; then
printf "%s" "$_ip "; ipv4_host_addr_to_net "$_ip" "$_maskbits"
fi
- done <"${CTDB_PUBLIC_ADDRESSES:-${CTDB_BASE}/public_addresses}"
+ done <"${CTDB_BASE}/public_addresses"
else
while read _i _rest ; do
if [ "$_ip" = "$_i" ] ; then
diff --git a/ctdb/config/functions b/ctdb/config/functions
index b3b348aebe2..36442991db2 100755
--- a/ctdb/config/functions
+++ b/ctdb/config/functions
@@ -592,7 +592,7 @@ drop_all_public_ips ()
# shellcheck disable=SC2034
while read _ip _x ; do
drop_ip "$_ip"
- done <"${CTDB_PUBLIC_ADDRESSES:-${CTDB_BASE}/public_addresses}"
+ done <"${CTDB_BASE}/public_addresses"
}
flush_route_cache ()
diff --git a/ctdb/doc/ctdb.7.xml b/ctdb/doc/ctdb.7.xml
index 5f5332e7640..c07af61dbf6 100644
--- a/ctdb/doc/ctdb.7.xml
+++ b/ctdb/doc/ctdb.7.xml
@@ -230,17 +230,21 @@
clients, as long as there are nodes available capable of
hosting this address.
</para>
+
<para>
- The public address configuration is stored in a file on each
- node specified by the <varname>CTDB_PUBLIC_ADDRESSES</varname>
- configuration variable (see
- <citerefentry><refentrytitle>ctdbd.conf</refentrytitle>
- <manvolnum>5</manvolnum></citerefentry>, recommended
- <filename>/usr/local/etc/ctdb/public_addresses</filename>). This file
- contains a list of the public addresses that the node is
- capable of hosting, one per line. Each entry also contains
- the netmask and the interface to which the address should be
- assigned.
+ The public address configuration is stored in
+ <filename>/usr/local/etc/ctdb/public_addresses</filename> on
+ each node. This file contains a list of the public addresses
+ that the node is capable of hosting, one per line. Each entry
+ also contains the netmask and the interface to which the
+ address should be assigned. If this file is missing then no
+ public addresses are configured.
+ </para>
+
+ <para>
+ Some users who have the same public addresses on all nodes
+ like to put this configuration file in their cluster
+ filesystem. A symbolic link should be used in this case.
</para>
<para>
diff --git a/ctdb/doc/ctdbd.conf.5.xml b/ctdb/doc/ctdbd.conf.5.xml
index c59f8062826..4fe01ef6de3 100644
--- a/ctdb/doc/ctdbd.conf.5.xml
+++ b/ctdb/doc/ctdbd.conf.5.xml
@@ -326,17 +326,6 @@
</varlistentry>
<varlistentry>
- <term>CTDB_PUBLIC_ADDRESSES=<parameter>FILENAME</parameter></term>
- <listitem>
- <para>
- Default is
- <filename>/usr/local/etc/ctdb/public_addresses</filename>.
- Corresponds to <option>--public-addresses</option>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
<term>CTDB_PUBLIC_INTERFACE=<parameter>INTERFACE</parameter></term>
<listitem>
<para>
diff --git a/ctdb/doc/examples/cluster.conf b/ctdb/doc/examples/cluster.conf
index 030276279aa..b3a3263efdb 100644
--- a/ctdb/doc/examples/cluster.conf
+++ b/ctdb/doc/examples/cluster.conf
@@ -65,8 +65,6 @@ CTDB_NODES=/etc/ctdb/nodes
# 10.1.1.106/24 eth1
# ---------- /etc/ctdb/public_addresses ----------
#
-CTDB_PUBLIC_ADDRESSES=/etc/ctdb/public_addresses
-
# Enable logging to syslog
CTDB_LOGGING=syslog
diff --git a/ctdb/doc/examples/natgw.conf b/ctdb/doc/examples/natgw.conf
index e1e75c78c65..e1844d63b97 100644
--- a/ctdb/doc/examples/natgw.conf
+++ b/ctdb/doc/examples/natgw.conf
@@ -67,8 +67,6 @@ CTDB_NODES=/etc/ctdb/nodes
# 10.1.1.106/24 eth1
# ---------- /etc/ctdb/public_addresses ----------
#
-CTDB_PUBLIC_ADDRESSES=/etc/ctdb/public_addresses
-
# Enable logging to syslog
CTDB_LOGGING=syslog
diff --git a/ctdb/tests/complex/18_ctdb_reloadips.sh b/ctdb/tests/complex/18_ctdb_reloadips.sh
index 5ac2830ce34..e0632f30564 100755
--- a/ctdb/tests/complex/18_ctdb_reloadips.sh
+++ b/ctdb/tests/complex/18_ctdb_reloadips.sh
@@ -100,7 +100,8 @@ try_command_on_node all "$CTDB setvar TakeoverTimeout ${new_takeover_timeout}"
####################
-addresses=$(get_ctdbd_command_line_option $test_node "public-addresses")
+try_command_on_node $test_node $CTDB_TEST_WRAPPER ctdb_base_show
+addresses="${out}/public_addresses"
echo "Public addresses file on node $test_node is \"$addresses\""
backup="${addresses}.$$"
diff --git a/ctdb/tests/eventscripts/10.interface.init.001.sh b/ctdb/tests/eventscripts/10.interface.init.001.sh
index f29dd849fd9..65c6bdc2a9a 100755
--- a/ctdb/tests/eventscripts/10.interface.init.001.sh
+++ b/ctdb/tests/eventscripts/10.interface.init.001.sh
@@ -8,6 +8,6 @@ setup_ctdb
rm -f "${CTDB_BASE}/public_addresses"
-ok "No public addresses file found. Nothing to do for 10.interfaces"
+ok "No public addresses file found"
simple_test
diff --git a/ctdb/tests/simple/18_ctdb_reloadips.sh b/ctdb/tests/simple/18_ctdb_reloadips.sh
index 6b92878c3dc..95b819fd82b 100755
--- a/ctdb/tests/simple/18_ctdb_reloadips.sh
+++ b/ctdb/tests/simple/18_ctdb_reloadips.sh
@@ -34,7 +34,8 @@ select_test_node_and_ips
echo "Emptying public addresses file on $test_node"
-addresses=$(get_ctdbd_command_line_option $test_node "public-addresses")
+try_command_on_node $test_node $CTDB_TEST_WRAPPER ctdb_base_show
+addresses="${out}/public_addresses"
echo "Public addresses file on node $test_node is \"$addresses\""
backup="${addresses}.$$"