diff options
author | Martin Schwenke <martin@meltin.net> | 2018-03-08 15:11:51 +1100 |
---|---|---|
committer | Amitay Isaacs <amitay@samba.org> | 2018-03-19 02:23:19 +0100 |
commit | 6ecddd4f723a034f945ff2bad49376f2dd2c8c62 (patch) | |
tree | 78dbbdc2a6071ae2280c363836f24112b599de86 | |
parent | b6127a6384de9bddda69a49437d656bb1bcd542a (diff) | |
download | samba-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-x | ctdb/config/ctdb-crash-cleanup.sh | 8 | ||||
-rw-r--r-- | ctdb/config/ctdbd.conf | 3 | ||||
-rwxr-xr-x | ctdb/config/ctdbd_wrapper | 1 | ||||
-rwxr-xr-x | ctdb/config/events.d/10.interface | 14 | ||||
-rwxr-xr-x | ctdb/config/events.d/11.natgw | 6 | ||||
-rwxr-xr-x | ctdb/config/events.d/13.per_ip_routing | 2 | ||||
-rwxr-xr-x | ctdb/config/functions | 2 | ||||
-rw-r--r-- | ctdb/doc/ctdb.7.xml | 24 | ||||
-rw-r--r-- | ctdb/doc/ctdbd.conf.5.xml | 11 | ||||
-rw-r--r-- | ctdb/doc/examples/cluster.conf | 2 | ||||
-rw-r--r-- | ctdb/doc/examples/natgw.conf | 2 | ||||
-rwxr-xr-x | ctdb/tests/complex/18_ctdb_reloadips.sh | 3 | ||||
-rwxr-xr-x | ctdb/tests/eventscripts/10.interface.init.001.sh | 2 | ||||
-rwxr-xr-x | ctdb/tests/simple/18_ctdb_reloadips.sh | 3 |
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}.$$" |