Permalink
Browse files

Merge pull request #72 from cloudant/12730-add-remsh-script

Add a remsh script for each node

BugzId: 12730
  • Loading branch information...
2 parents 41e7cb7 + d367c4b commit 2063aca3d4246773a59c24ba768ddb1e712356f8 @davisp davisp committed Oct 13, 2011
Showing with 57 additions and 5 deletions.
  1. +8 −1 configure
  2. +39 −0 rel/overlay/bin/remsh
  3. +9 −4 rel/overlay/etc/vm.args
  4. +1 −0 rel/reltool.config
View
@@ -44,15 +44,20 @@ 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
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`}.
View
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+NAME="remsh$$"
+REM_NODE="{{node_name}}"
+NAME_TYPE=${REM_NODE% *}
+REM_NODE=${REM_NODE#* }
+HOST=`echo "$REM_NODE" | grep -o "@.*" | sed 's/@//'`
+
+if test -n $HOST; then
+ NAME="$NAME_TYPE $NAME@$HOST"
+else
+ NAME="$NAME_TYPE $NAME"
+fi
+
+ERTS_BIN_DIR=$(cd ${0%/*} && pwd)
+ROOTDIR=${ERTS_BIN_DIR%/*}
+
+START_ERL=`cat $ROOTDIR/releases/start_erl.data`
+ERTS_VSN=${START_ERL% *}
+APP_VSN=${START_ERL#* }
+START_CLEAN="${ROOTDIR}/releases/${APP_VSN}/start_clean"
+
+BINDIR=$ROOTDIR/erts-$ERTS_VSN/bin
+
+COOKIE="{{cookie}}"
+
+exec $BINDIR/erl $NAME -remsh $REM_NODE $COOKIE -hidden -boot $START_CLEAN
View
@@ -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
View
@@ -57,6 +57,7 @@
{copy, "overlay/share"},
{copy, "../couchjs/build/couchjs", "bin/couchjs"},
{copy, "../couchjs/build/main.js", "share/couchjs/main.js"},
+ {template, "overlay/bin/remsh", "bin/remsh"},
{template, "overlay/etc/default.ini", "etc/default.ini"},
{template, "overlay/etc/vm.args", "etc/vm.args"}
]}.

0 comments on commit 2063aca

Please sign in to comment.