| #!/usr/bin/env bash | 
 | # Licensed to the Apache Software Foundation (ASF) under one | 
 | # or more contributor license agreements.  See the NOTICE file | 
 | # distributed with this work for additional information | 
 | # regarding copyright ownership.  The ASF licenses this file | 
 | # to you 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. | 
 |  | 
 |  | 
 |  | 
 |  | 
 | set -x | 
 |  | 
 | usage() { | 
 |   printf "Usage: %s: [-f] [-d] [-i] \n" $(basename $0) >&2 | 
 | } | 
 |  | 
 |  | 
 | path= | 
 | db= | 
 | ips= | 
 |  | 
 | while getopts 'p:d:i:' OPTION | 
 | do | 
 |   case $OPTION in | 
 |   p)    path="$OPTARG" | 
 |         ;; | 
 |   d)    db="$OPTARG" | 
 |         ;; | 
 |   i)    ips="$OPTARG" | 
 |         ;; | 
 |  | 
 |   ?)    usage | 
 |   esac | 
 | done | 
 |  | 
 |  | 
 | deploy_server() { | 
 |   echo "Deploying management server software on remote machine $1" | 
 |  | 
 |   rsync -avzh -e ssh $path/cloudstack-oss root@$1:/root/ | 
 |   if [ $? -gt 0 ]; then echo "failed to rsync software between $path/cloudstack-oss and remote machine $1"; return 2; fi | 
 |  | 
 |   ssh root@$1 "cd /root/cloudstack-oss && ant clean build-all deploy-server" | 
 |   if [ $? -gt 0 ]; then echo "failed to deploy cluster on $1"; return 2; fi | 
 |  | 
 |  | 
 |   ssh root@$1 "dir=\`cat ~/.bashrc  | grep 'export CATALINA_HOME' | awk -F '=' '{ print \$2}'\` && file=\$dir/conf/db.properties && sed '/cluster.node.IP/ d' \$file > db.properties1; dos2unix db.properties1; mv -f db.properties1 \$file; echo \cluster.node.IP=$1 >> \$file && file=\$dir/conf/db.properties && sed '/db.cloud.host/ d' \$file > db.properties1; dos2unix db.properties1; mv -f db.properties1 \$file; echo \db.cloud.host=$db >> \$file && file=\$dir/conf/db.properties && sed '/db.usage.host/ d' \$file > db.properties1; dos2unix db.properties1; mv -f db.properties1 \$file; echo \db.usage.host=$db >> \$file" | 
 |  | 
 | if [ $? -gt 0 ]; then echo "failed to setup db.properties file on remote $1"; return 2; fi | 
 |  | 
 | #ssh root@$1 "cd /root/cloudstack-oss && nohup ant run &" | 
 |   #if [ $? -gt 0 ]; then echo "failed to start the softare on remote $1"; return 2; fi | 
 |  | 
 |   echo "Remote management server is deployed as a part of cluster setup; you have to start it manually by logging in remotely" | 
 | } | 
 |  | 
 | export IFS="," | 
 | for ip in $ips; do | 
 |   echo "$ip" | 
 |   deploy_server $ip | 
 | done |