Improved vm cluster scripts.

This commit is contained in:
ravinsp
2019-11-28 16:29:07 +05:30
parent f42bd56cb3
commit 5bfcaba58b
5 changed files with 43 additions and 45 deletions

View File

@@ -1,10 +1,12 @@
#!/bin/bash
vmpass=""
#ip locations: aueast aueast uswest uswest seasia
vmips=(ip list)
vmcount=${#vmips[@]}
mode=$1
hpcore=$(realpath ../..)
if [ "$mode" = "new" ] || [ "$mode" = "run" ] || [ "$mode" = "update" ]; then
echo ""
else
@@ -13,38 +15,25 @@ else
fi
if [ $mode = "run" ]; then
let n=$2-1
vmip=${vmips[$n]}
sshpass -p $vmpass ssh geveo@$vmip './hpcore run contract'
exit
let nodeid=$2-1
vmip=${vmips[$nodeid]}
sshpass -p $vmpass ssh geveo@$vmip 'sudo ./hpcore run contract'
exit 0
fi
hpcore=$(realpath ../..)
vmcount=${#vmips[@]}
#vmcount=2
mkdir ./cfg > /dev/null 2>&1
for (( i=0; i<$vmcount; i++ ))
do
vmip=${vmips[i]}
let n=$i+1
#if [ $mode = "update" ]; then
# /bin/bash ./setup-vm.sh $mode $n $vmpass $vmip $hpcore &
#else
/bin/bash ./setup-vm.sh $mode $n $vmpass $vmip $hpcore
#fi
/bin/bash ./setup-vm.sh $mode $n $vmpass $vmip $hpcore
# Collect each node's pub key and peer address.
pubkeys[i]=$(node -p "require('./cfg/node$n.json').pubkeyhex")
peers[i]="$vmip:22860"
done
if [ $mode = "update" ]; then
exit
fi
# Function to generate JSON array string while skiping a given index.
function joinarr {
arrname=$1[@]

View File

@@ -1,26 +1,28 @@
#!/bin/bash
if [ -x "$(command -v node)" ]; then
echo "NodeJs is installed."
echo "NodeJs already installed."
else
echo "Installing NodeJs..."
sudo apt-get update
sudo apt-get -y install curl
curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash -
sudo apt-get install -y nodejs
fi
# FUSE
if [ -x "$(command -v fusermount3)" ]; then
echo "FUSE already installed."
else
echo "Installing FUSE..."
sudo cp ./libfuse3.so.3 /usr/local/lib/
sudo ldconfig
# Install fuse.
sudo apt-get update && apt-get install -y fuse && rm -rf /var/lib/apt/lists/*
sudo cp ./fusermount3 /usr/local/bin/
fi
if [ ! -d "./contract" ]; then
./hpcore new ./contract
pushd ./contract/cfg
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout tlskey.pem -out tlscert.pem \
-subj "/C=AU/ST=ST/L=L/O=O/OU=OU/CN=localhost/emailAddress=hp@example" > /dev/null 2>&1
popd
fi
sudo rm -r ~/contract > /dev/null 2>&1
./hpcore new ./contract
pushd ./contract/cfg > /dev/null 2>&1
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout tlskey.pem -out tlscert.pem \
-subj "/C=AU/ST=ST/L=L/O=O/OU=OU/CN=localhost/emailAddress=hp@example" > /dev/null 2>&1
popd > /dev/null 2>&1

View File

@@ -8,18 +8,21 @@ hpcore=$5
echo $nodeid. $vmip
sshpass -p $vmpass scp $hpcore/build/hpcore \
$hpcore/build/hpstatemon \
$hpcore/libfuse3.so.3 \
$hpcore/examples/echocontract/contract.js \
./setup-hp.sh \
geveo@$vmip:~/
if [ $mode = "new" ]; then
sshpass -p $vmpass ssh geveo@$vmip 'rm -r ~/contract && chmod 700 ~/setup-hp.sh && ~/setup-hp.sh'
else
exit
fi
sshpass -p $vmpass scp geveo@$vmip:~/contract/cfg/hp.cfg ./cfg/node$nodeid.json
sshpass -p $vmpass scp $hpcore/build/hpcore \
$hpcore/build/hpstatemon \
$hpcore/examples/echocontract/contract.js \
/usr/local/lib/libfuse3.so.3 \
/usr/local/bin/fusermount3 \
./setup-hp.sh \
geveo@$vmip:~/
sshpass -p $vmpass ssh geveo@$vmip 'chmod 700 ~/setup-hp.sh && ~/setup-hp.sh'
sshpass -p $vmpass scp geveo@$vmip:~/contract/cfg/hp.cfg ./cfg/node$nodeid.json
else
sshpass -p $vmpass scp $hpcore/build/hpcore \
$hpcore/build/hpstatemon \
$hpcore/examples/echocontract/contract.js \
geveo@$vmip:~/
fi

3
test/vm-cluster/vmcreate.sh Normal file → Executable file
View File

@@ -1,6 +1,7 @@
#!/bin/bash
#ac login
# Azure vm creation.s
#az login
#az account list
#az account set --subscription ''