#!/bin/sh # Start a cluster # # Arguments: NAME HOST [host...] # Start a cluster called NAME with N nodes running on the given HOSTs # repeat the host name to run multiple brokers on one host. Use dynamic # ports. # # Log files, data directories and hosts/ports files are all stored under # $HOME/cluster_test/$NAME # source config.sh CLUSTER_NAME=`date +"${USER}_%F_%T"` HOSTS=($BROKER_HOSTS) for ((i = 0; i < ${#HOSTS[*]}; ++i)) ; do host=${HOSTS[$i]} datadir=$CLUSTER_HOME/broker$i log=$datadir/qpidd.log ssh $host "rm -rf $datadir; mkdir -p $datadir" || { echo "ERROR: can't make data dir $datadir"; exit 1 } port=`ssh $host "echo $QPIDD -dp0 --cluster-name=$CLUSTER_NAME \ --data-dir=$datadir \ --log-to-file=$log --log-prefix=broker$i \ $QPIDD_OPTS | newgrp ais"` || { error "ERROR: can't start broker $i on $host"; exit 1; } PORTS="$PORTS $port" done echo "$BROKER_HOSTS" > $CLUSTER_HOME/hosts echo "$PORTS" > $CLUSTER_HOME/ports `dirname $0`/cluster_check $NAME