9 until timeout 10s ssh $ssh_args ec2-user@$ip "exit" >/dev/null 2>&1
11 echo "retry connect rubbos vm ip $ip $retry"
14 if [[ $retry -ge $2 ]];then
15 echo "rubbos control start timeout !!!"
21 bottlenecks_prepare_env()
23 echo "Bottlenecks prepare env in VMs"
25 # configue rubbos control ssh key
28 # wait all other VMs ok
29 for i in $rubbos_benchmark $rubbos_client1 $rubbos_client2 \
30 $rubbos_client3 $rubbos_client4 $rubbos_httpd $rubbos_mysql1 $rubbos_tomcat1
36 for i in $rubbos_benchmark $rubbos_client1 $rubbos_client2 \
37 $rubbos_client3 $rubbos_client4 $rubbos_httpd $rubbos_mysql1 $rubbos_tomcat1
39 scp $ssh_args -r $SCRIPT_DIR ec2-user@$i:/tmp
40 ssh $ssh_args ec2-user@$i "sudo bash $SCRIPT_DIR/vm_prepare_setup.sh" &
43 # ugly use ssh execute script to fix ec2-user previlege issue
44 ssh $ssh_args ec2-user@$rubbos_control "sudo bash $SCRIPT_DIR/vm_prepare_setup.sh"
47 for i in $rubbos_control $rubbos_benchmark $rubbos_client1 $rubbos_client2 \
48 $rubbos_client3 $rubbos_client4 $rubbos_httpd $rubbos_mysql1 $rubbos_tomcat1
50 ssh $ssh_args root@$i "uname -a"
54 bottlenecks_download_repo()
56 echo "Bottlenecks: download bottlenecks repo"
58 sudo git config --global http.sslVerify false
59 if [ -d $BOTTLENECKS_REPO_DIR/.git ]; then
60 cd $BOTTLENECKS_REPO_DIR
61 sudo git pull origin master
62 if [ x"$GERRIT_REFSPEC_DEBUG" != x ]; then
63 sudo git fetch $BOTTLENECKS_REPO $GERRIT_REFSPEC_DEBUG && sudo git checkout FETCH_HEAD
67 sudo rm -rf $BOTTLENECKS_REPO_DIR
68 sudo git clone $BOTTLENECKS_REPO $BOTTLENECKS_REPO_DIR
69 if [ x"$GERRIT_REFSPEC_DEBUG" != x ]; then
70 cd $BOTTLENECKS_REPO_DIR
71 echo "fetch $GERRIT_REFSPEC_DEBUG"
72 sudo git fetch $BOTTLENECKS_REPO $GERRIT_REFSPEC_DEBUG && sudo git checkout FETCH_HEAD
79 bottlenecks_config_hosts_ip()
81 sudo sed -i -e "s/REPLACE_CONTROL_HOST/$rubbos_control/g" \
82 -e "s/REPLACE_HTTPD_HOST/$rubbos_httpd/g" \
83 -e "s/REPLACE_MYSQL1_HOST/$rubbos_mysql1/g" \
84 -e "s/REPLACE_TOMCAT1_HOST/$rubbos_tomcat1/g" \
85 -e "s/REPLACE_CLIENT1_HOST/$rubbos_client1/g" \
86 -e "s/REPLACE_CLIENT2_HOST/$rubbos_client2/g" \
87 -e "s/REPLACE_CLIENT3_HOST/$rubbos_client3/g" \
88 -e "s/REPLACE_CLIENT4_HOST/$rubbos_client4/g" \
89 -e "s/REPLACE_BENCHMARK_HOST/$rubbos_benchmark/g" \
90 $BOTTLENECKS_REPO_DIR/rubbos/rubbos_scripts/1-1-1/set_bottlenecks_rubbos_env.sh
93 bottlenecks_download_packages()
95 echo "Bottlenecks: download rubbos dependent packages from artifacts"
97 curl --connect-timeout 10 -o /tmp/app_tools.tar.gz $RUBBOS_APP_TOOLS_URL 2>/dev/null
98 sudo tar zxf /tmp/app_tools.tar.gz -C $RUBBOS_DIR
99 rm -rf /tmp/app_tools.tar.gz
100 curl --connect-timeout 10 -o /tmp/rubbosMulini6.tar.gz $RUBBOS_MULINI6_URL 2>/dev/null
101 sudo tar zxf /tmp/rubbosMulini6.tar.gz -C $RUBBOS_MULINI6_DIR
102 rm -rf /tmp/rubbosMulini6.tar.gz
105 bottlenecks_rubbos_install_exe()
107 echo "Bottlenecks: install and run rubbos"
115 SCRIPT_DIR=`cd ${BASH_SOURCE[0]%/*};pwd`
117 ssh_args="-o StrictHostKeyChecking=no -o BatchMode=yes"
118 source $SCRIPT_DIR/package.conf
119 source $SCRIPT_DIR/hosts.conf
120 source $SCRIPT_DIR/common.sh
122 bottlenecks_prepare_env
124 bottlenecks_download_repo
125 bottlenecks_config_hosts_ip
126 bottlenecks_download_packages
127 bottlenecks_rubbos_install_exe