| #! /bin/bash |
| USERNAME=ubuntu |
| if [ $# == 3 ]; then |
| NR_NODES=$1 |
| basename=$2 |
| hosts_file=$3 |
| else |
| echo "$0 nr_hodes basename hostfile" |
| exit |
| fi |
| |
| for n in `seq 1 $NR_NODES`; do |
| rm -rf ${basename}${n} |
| mkdir ${basename}${n} |
| echo "${basename}${n}" > ${basename}${n}/hostname |
| echo $n > ${basename}${n}/myid |
| done |
| |
| ## ZK config ## |
| cp template/zoo.cfg common/ |
| for n in `seq 1 $NR_NODES`; do |
| echo "server.${n}=${basename}${n}:2888:3888" |
| done >> common/zoo.cfg |
| |
| ## Cassandra config ## |
| cat template/cassandra.yaml |\ |
| sed "s/__SEED__/${basename}1/g" > common/cassandra.yaml |
| |
| ## /etc/hosts ## |
| cat template/hosts $hosts_file > common/hosts |
| |
| ## .ssh/known_hosts ## |
| ssh-keyscan -H -t rsa github.com > common/known_hosts |
| ssh-keyscan -H -t rsa onosnat >> common/known_hosts |
| for n in `seq 1 $NR_NODES`; do |
| ssh-keyscan -H -t rsa ${basename}${n} |
| done >> common/known_hosts |
| |
| echo "GROUP: $basename" > cluster.txt |
| cat $hosts_file | awk '{print $2}' >> cluster.txt |
| |
| |
| ## Creating shell script to login each node ## |
| for n in `seq 1 $NR_NODES`; do |
| cat << EOF > bin/${basename}${n} |
| #!/bin/sh |
| ssh $USERNAME@${basename}${n} |
| EOF |
| chmod 755 bin/${basename}${n} |
| done |
| |
| echo "======================================" |
| echo "Do not forget to do the following" |
| echo "paste $hosts_file to /etc/hosts" |
| echo "paste cluster.txt to your CLUSTER file" |
| echo "======================================" |