summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul J. Davis <paul.joseph.davis@gmail.com>2011-10-12 18:10:04 -0500
committerPaul J. Davis <paul.joseph.davis@gmail.com>2011-10-13 17:25:50 -0500
commitd367c4bec22ad20807901c4b9c53b4fe4cd0fa59 (patch)
tree960fe7e8ee3261279a16ba1e23de7ecbb4ed4fb1
parent44ba06264f802128110d6ee388d4e7dbcd46a918 (diff)
Improve remsh script
Cookies now default to using ~/.erlang.cookie which is automatically generated if it does not exist when erlang starts with a name. There is also no longer a need to specify a name to remsh as it'll generate a name based on the process id and set the short or long version appropriately.
-rwxr-xr-xconfigure9
-rwxr-xr-xrel/overlay/bin/remsh20
-rw-r--r--rel/overlay/etc/vm.args13
3 files changed, 26 insertions, 16 deletions
diff --git a/configure b/configure
index 0e299604..72d441e2 100755
--- a/configure
+++ b/configure
@@ -44,8 +44,12 @@ do
BIGCOUCH_USER=$2
shift 2
;;
+ -c)
+ COOKIE=$2
+ shift 2
+ ;;
*)
- echo "usage: $0 [-p {prefix} -t {template} -d {data_dir} -v {view_dir} -u {user}]"
+ echo "usage: $0 [-p {prefix} -t {template} -d {data_dir} -v {view_dir} -u {user} -c {cookie}]"
exit
;;
esac
@@ -53,6 +57,7 @@ done
if test ! -n "$DATA"; then DATA="$PREFIX/var/lib"; fi
if test ! -n "$VIEW"; then VIEW="$PREFIX/var/lib"; fi
+if test -n "$COOKIE"; then COOKIE="-setcookie $COOKIE"; fi
echo "==> configuring bigcouch in rel/bigcouch.config"
cat > rel/bigcouch.config << EOF
@@ -61,6 +66,7 @@ cat > rel/bigcouch.config << EOF
{view_dir, "$VIEW"}.
{user, "$BIGCOUCH_USER"}.
{node_name, "-name bigcouch"}.
+{cookie, "$COOKIE"}.
{cluster_port, 5984}.
{cluster_ssl, 6984}.
{backend_port, 5986}.
@@ -81,6 +87,7 @@ cat > rel/dev$i.config << EOF
{data_dir, "$DIRPATH/rel/tmpdata/dev$i"}.
{view_dir, "$DIRPATH/rel/tmpdata/dev$i"}.
{node_name, "-name dev$i@127.0.0.1"}.
+{cookie, "$COOKIE"}.
{cluster_port, `expr 10000 \* $i + 5984`}.
{cluster_ssl, `expr 10000 \* $i + 6984`}.
{backend_port, `expr 10000 \* $i + 5986`}.
diff --git a/rel/overlay/bin/remsh b/rel/overlay/bin/remsh
index d6028b42..39955ae8 100755
--- a/rel/overlay/bin/remsh
+++ b/rel/overlay/bin/remsh
@@ -12,15 +12,16 @@
# License for the specific language governing permissions and limitations under
# the License.
-if test ! $1 ; then
- echo "usage: $0 nodename"
- exit 1
-fi
+NAME="remsh$$"
+REM_NODE="{{node_name}}"
+NAME_TYPE=${REM_NODE% *}
+REM_NODE=${REM_NODE#* }
+HOST=`echo "$REM_NODE" | grep -o "@.*" | sed 's/@//'`
-if test `echo $1 | sed 's/[^@]//g'`; then
- NAME="-name $1"
+if test -n $HOST; then
+ NAME="$NAME_TYPE $NAME@$HOST"
else
- NAME="-sname $1"
+ NAME="$NAME_TYPE $NAME"
fi
ERTS_BIN_DIR=$(cd ${0%/*} && pwd)
@@ -33,9 +34,6 @@ START_CLEAN="${ROOTDIR}/releases/${APP_VSN}/start_clean"
BINDIR=$ROOTDIR/erts-$ERTS_VSN/bin
-REM_NODE="{{node_name}}"
-REM_NODE=${REM_NODE#* }
-
-COOKIE="-setcookie monster"
+COOKIE="{{cookie}}"
exec $BINDIR/erl $NAME -remsh $REM_NODE $COOKIE -hidden -boot $START_CLEAN
diff --git a/rel/overlay/etc/vm.args b/rel/overlay/etc/vm.args
index bb143502..03e5af27 100644
--- a/rel/overlay/etc/vm.args
+++ b/rel/overlay/etc/vm.args
@@ -4,10 +4,15 @@
# with the -name flag.
{{node_name}}
-# All nodes must share the same magic cookie for distributed Erlang to work.
-# Comment out this line if you synchronized the cookies by other means (using
-# the ~/.erlang.cookie file, for example).
--setcookie monster
+# If you passed a value for the cookie to ./configure it will be set here.
+# Otherwise it will default to using ~/.erlang.cookie which will be generated
+# automatically if it doesn't exist.
+#
+# Note that you need to make sure that the cookie value used is synchronized
+# across all nodes in the cluster. This means that if you don't set the
+# cookie by hand you need to manually sync ~/.erlang.cookie across all nodes
+# in the cluster.
+{{cookie}}
# Tell SASL not to log progress reports
-sasl errlog_type error