9 until timeout 10s ssh $ssh_args ubuntu@$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"
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 ubuntu@$i:/tmp
40 ssh $ssh_args ubuntu@$i "sudo bash $SCRIPT_DIR/vm_prepare_setup.sh" &
43 # ugly use ssh execute script to fix ubuntu previlege issue
44 ssh $ssh_args ubuntu@$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"
56 if git cat-file -e $1^{commit} 2>/dev/null; then
57 # branch, tag or sha1 object
61 git fetch --tags --progress $2 $1
62 git checkout FETCH_HEAD
66 bottlenecks_download_repo()
68 echo "Bottlenecks: download bottlenecks repo"
70 sudo git config --global http.sslVerify false
71 if [ ! -d $BOTTLENECKS_REPO_DIR ]; then
72 git clone $BOTTLENECKS_REPO $BOTTLENECKS_REPO_DIR
74 cd $BOTTLENECKS_REPO_DIR
75 git checkout master && git pull
76 git_checkout $BOTTLENECKS_BRANCH $BOTTLENECKS_REPO
80 bottlenecks_config_hosts_ip()
82 sudo sed -i -e "s/REPLACE_CONTROL_HOST/$rubbos_control/g" \
83 -e "s/REPLACE_HTTPD_HOST/$rubbos_httpd/g" \
84 -e "s/REPLACE_MYSQL1_HOST/$rubbos_mysql1/g" \
85 -e "s/REPLACE_TOMCAT1_HOST/$rubbos_tomcat1/g" \
86 -e "s/REPLACE_CLIENT1_HOST/$rubbos_client1/g" \
87 -e "s/REPLACE_CLIENT2_HOST/$rubbos_client2/g" \
88 -e "s/REPLACE_CLIENT3_HOST/$rubbos_client3/g" \
89 -e "s/REPLACE_CLIENT4_HOST/$rubbos_client4/g" \
90 -e "s/REPLACE_BENCHMARK_HOST/$rubbos_benchmark/g" \
91 $BOTTLENECKS_REPO_DIR/rubbos/rubbos_scripts/1-1-1/set_bottlenecks_rubbos_env.sh
94 bottlenecks_download_packages()
96 echo "Bottlenecks: download rubbos dependent packages from artifacts"
98 curl --connect-timeout 10 -o /tmp/app_tools.tar.gz $RUBBOS_APP_TOOLS_URL 2>/dev/null
99 sudo tar zxf /tmp/app_tools.tar.gz -C $RUBBOS_DIR
100 rm -rf /tmp/app_tools.tar.gz
101 curl --connect-timeout 10 -o /tmp/rubbosMulini6.tar.gz $RUBBOS_MULINI6_URL 2>/dev/null
102 sudo tar zxf /tmp/rubbosMulini6.tar.gz -C $RUBBOS_MULINI6_DIR
103 rm -rf /tmp/rubbosMulini6.tar.gz
106 bottlenecks_rubbos_install_exe()
108 echo "Bottlenecks: install and run rubbos"
116 SCRIPT_DIR=`cd ${BASH_SOURCE[0]%/*};pwd`
118 ssh_args="-o StrictHostKeyChecking=no -o BatchMode=yes"
119 source $SCRIPT_DIR/hosts.conf
120 source $SCRIPT_DIR/package.conf
121 source $SCRIPT_DIR/common.sh
123 bottlenecks_prepare_env
125 bottlenecks_download_repo
126 bottlenecks_config_hosts_ip
127 bottlenecks_download_packages
128 bottlenecks_rubbos_install_exe