X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=testsuites%2Frubbos%2Fpuppet_manifests%2Finternal%2Frun_rubbos_internal.sh;h=2d7677d85cd1482101da210080afefb9003a04ca;hb=33d7006546e40ca96013dbe49c9b7dedb9325415;hp=25ead251cbd6b7c28a4a44e01ba81b4429b2459b;hpb=fc3e423277087d08fa19cb1beb43a53e6a32f427;p=bottlenecks.git diff --git a/testsuites/rubbos/puppet_manifests/internal/run_rubbos_internal.sh b/testsuites/rubbos/puppet_manifests/internal/run_rubbos_internal.sh index 25ead251..2d7677d8 100755 --- a/testsuites/rubbos/puppet_manifests/internal/run_rubbos_internal.sh +++ b/testsuites/rubbos/puppet_manifests/internal/run_rubbos_internal.sh @@ -21,10 +21,12 @@ controller_host=`hostname` REMOTE_GIT_REPO=git://git.opnfv.org/bottlenecks REMOTE_ARTIFACTS_REPO=http://artifacts.opnfv.org/bottlenecks/rubbos/rubbos_files.tar.gz -LOCAL_GIT_REPO=/btnks-git -LOCAL_ARTIFACTS_REPO=/btnks-artifacts -LOCAL_RUBBOS_MANIFESTS_HOME=/btnks-git/bottlenecks/testsuites/rubbos/puppet_manifests -LOCAL_ARTIFACTS_RUBBOS_HOME=/btnks-artifacts/rubbos_files +LOCAL_GIT_REPO=/home/ubuntu/btnks-git +LOCAL_ARTIFACTS_REPO=/home/ubuntu/btnks-artifacts +LOCAL_RUBBOS_MANIFESTS_HOME=/home/ubuntu/btnks-git/bottlenecks/testsuites/rubbos/puppet_manifests +LOCAL_ARTIFACTS_RUBBOS_HOME=/home/ubuntu/btnks-artifacts/rubbos_files + +SSH_ARGS="-o StrictHostKeyChecking=no -o BatchMode=yes -i /home/ubuntu/.ssh/id_rsa" # conf properties from the input config file client_servers= @@ -171,7 +173,7 @@ fetch_remote_resources() { fi mkdir -p $LOCAL_ARTIFACTS_REPO cd $LOCAL_ARTIFACTS_REPO - wget ${REMOTE_ARTIFACTS_REPO} + wget -nv ${REMOTE_ARTIFACTS_REPO} tar xvzf rubbos_files.tar.gz if [ -d $local_results_dir ];then @@ -180,6 +182,68 @@ fetch_remote_resources() { mkdir -p $local_results_dir } +# ssh all vms/instances once only after first creation +direct_ssh() { + echo "127.0.0.1 $(hostname)" >> /etc/hosts + echo "write hosts file: 127.0.0.1 $(hostname)" + cp ${LOCAL_GIT_REPO}/bottlenecks/utils/infra_setup/bottlenecks_key/bottlenecks_key /home/ubuntu/.ssh/id_rsa + sudo chmod 0600 /home/ubuntu/.ssh/id_rsa + echo 'StrictHostKeyChecking no' > /home/ubuntu/.ssh/config + sudo chown -R ubuntu:ubuntu /home/ubuntu/.ssh + i=1 + while [ $i -lt ${#hostip_arr[@]} ]; do + echo ${hostip_arr[$i]}" "${hostname_arr[$i]} >> /etc/hosts + let i=i+1 + done + echo "Done controller." + + i=1 + while [ $i -lt ${#hostip_arr[@]} ]; do + if [ ${hostname_arr[$i]} == ${controller_host} ];then + let i=i+1 + continue + fi + echo "Processing: "${hostip_arr[$i]}" "${hostname_arr[$i]} + echo "ssh *sudo hostname* test:" + ssh ${SSH_ARGS} ubuntu@${hostip_arr[$i]} "sudo hostname" + + ssh ${SSH_ARGS} ubuntu@${hostip_arr[$i]} "sudo cp /etc/hosts /home/ubuntu/ && sudo chmod 646 /home/ubuntu/hosts" + ssh ${SSH_ARGS} ubuntu@${hostip_arr[$i]} "echo 127.0.0.1 ${hostname_arr[$i]} >> /home/ubuntu/hosts" + j=1 + while [ $j -lt ${#hostip_arr[@]} ];do + local host_item=${hostip_arr[$j]}" "${hostname_arr[$j]} + ssh ${SSH_ARGS} ubuntu@${hostip_arr[$i]} "echo ${host_item} >> /home/ubuntu/hosts" + let j=j+1 + done + ssh ${SSH_ARGS} ubuntu@${hostip_arr[$i]} "sudo chmod 644 /home/ubuntu/hosts && sudo cp /home/ubuntu/hosts /etc/ && sudo rm -rf /home/ubuntu/hosts" + echo "done hosts" + + sudo ssh ${SSH_ARGS} ubuntu@${hostip_arr[$i]} "echo 'StrictHostKeyChecking no' > /home/ubuntu/.ssh/config" + sudo scp ${SSH_ARGS} /home/ubuntu/.ssh/id_rsa ubuntu@${hostip_arr[$i]}:/home/ubuntu/.ssh/ + + let i=i+1 + done +} + +start_puppet_service() { + # Start puppetserver + sudo service puppetserver stop + sudo service puppetserver start + sudo service puppetserver status + # Start all puppet agents + for host in "${all_agents_arr[@]}";do + echo "start puppet agent on:"${host} + ssh ${SSH_ARGS} ubuntu@${host} "sudo service puppet status" + ssh ${SSH_ARGS} ubuntu@${host} "sudo service puppet stop" + ssh ${SSH_ARGS} ubuntu@${host} "sudo service puppet start --no-client" + ssh ${SSH_ARGS} ubuntu@${host} "sudo service puppet status" + done + + sudo puppet cert list --all + sudo puppet cert sign --all + sudo puppet cert list --all +} + # inline function # It requires one local file path which needs to be replaced _replace_text() { @@ -229,30 +293,17 @@ _to_puppet_class_nodes() { # inline function _execute_catalog() { - # use *class_nodes* to receive return vale - _to_puppet_class_nodes ${client_servers} - sed -i 's/REPLACED_CLIENT_NODES/'${class_nodes}'/g' /etc/puppet/manifests/site.pp - - _to_puppet_class_nodes ${web_servers} - sed -i 's/REPLACED_HTTPD_NODES/'${class_nodes}'/g' /etc/puppet/manifests/site.pp - - _to_puppet_class_nodes ${app_servers} - sed -i 's/REPLACED_TOMCAT_NODES/'${class_nodes}'/g' /etc/puppet/manifests/site.pp - - _to_puppet_class_nodes ${database_servers} - sed -i 's/REPLACED_MYSQL_NODES/'${class_nodes}'/g' /etc/puppet/manifests/site.pp - for host in "${clients_arr[@]}"; do - ssh ubuntu@${host} 'sudo puppet agent -t' & + ssh ${SSH_ARGS} ubuntu@${host} 'sudo puppet agent -t' & done for host in "${webservers_arr[@]}"; do - ssh ubuntu@${host} 'sudo puppet agent -t' + ssh ${SSH_ARGS} ubuntu@${host} 'sudo puppet agent -t' done for host in "${appservers_arr[@]}"; do - ssh ubuntu@${host} 'sudo puppet agent -t' + ssh ${SSH_ARGS} ubuntu@${host} 'sudo puppet agent -t' done for host in "${dbservers_arr[@]}"; do - ssh ubuntu@${host} 'sudo puppet agent -t' + ssh ${SSH_ARGS} ubuntu@${host} 'sudo puppet agent -t' done } @@ -276,39 +327,40 @@ prepare_manifests() { execute_catalog() { # start all (exec catalog) - echo "--> Cleanup all agents..." - sudo cp ${LOCAL_RUBBOS_MANIFESTS_HOME}/site_off.pp /etc/puppet/manifests/site.pp - _execute_catalog - - sleep 3s - - echo "--> Start to execute catalogs in all agents..." - sudo cp ${LOCAL_RUBBOS_MANIFESTS_HOME}/site_on.pp /etc/puppet/manifests/site.pp - _execute_catalog - echo "--> Finish to execute catalogs in all agents." + if [ "x"$1 == "xstart" ];then + echo "--> Start to execute catalogs in all agents..." + sudo cp ${LOCAL_RUBBOS_MANIFESTS_HOME}/site_on.pp /etc/puppet/manifests/site.pp + _execute_catalog + echo "--> Finish to execute catalogs in all agents." + elif [ "x"$1 == "xclean" ];then + echo "--> Cleanup all agents..." + sudo cp ${LOCAL_RUBBOS_MANIFESTS_HOME}/site_off.pp /etc/puppet/manifests/site.pp + _execute_catalog + echo "--> Finish to cleanup all agents." + fi } run_emulator() { # prepare data in db servers for host in "${dbservers_arr[@]}"; do - ssh ubuntu@${host} 'sudo scp ubuntu@'${controller_host}':/etc/puppet/modules/rubbos_mysql/files/rubbos_data_sql.tar.gz '${rubbos_home}'' - ssh ubuntu@${host} 'cd '${rubbos_home}' && sudo ./prepare_rubbos_mysql_db.sh ./rubbos_data_sql.tar.gz ./rubbos_data_sql_dir' + ssh ${SSH_ARGS} ubuntu@${host} 'sudo scp ubuntu@'${controller_host}':/etc/puppet/modules/rubbos_mysql/files/rubbos_data_sql.tar.gz '${rubbos_home}'' + ssh ${SSH_ARGS} ubuntu@${host} 'cd '${rubbos_home}' && sudo ./prepare_rubbos_mysql_db.sh ./rubbos_data_sql.tar.gz ./rubbos_data_sql_dir' done # run emulator.sh ( Modify rubbos.properties file first) - ssh ubuntu@${bench_client} 'sudo rm -rf '${rubbos_home}'/bench/bench' + ssh ${SSH_ARGS} ubuntu@${bench_client} 'sudo rm -rf '${rubbos_home}'/bench/bench' for x in "${clients_per_node_arr[@]}";do echo "run emulator with clients_per_node="$x for host in "${clients_arr[@]}";do - ssh ubuntu@${host} "sed -e 's/REPLACED_NUMBER_OF_CLIENTS_PER_NODE/'${x}'/g' '${rubbos_home}'/Client/rubbos.properties.template > '${rubbos_home}'/Client/rubbos.properties " + ssh ${SSH_ARGS} ubuntu@${host} "sed -e 's/REPLACED_NUMBER_OF_CLIENTS_PER_NODE/'${x}'/g' '${rubbos_home}'/Client/rubbos.properties.template > '${rubbos_home}'/Client/rubbos.properties " done - ssh ubuntu@${bench_client} 'cd '${rubbos_home}'/bench && ./run_emulator.sh' + ssh ${SSH_ARGS} ubuntu@${bench_client} 'cd '${rubbos_home}'/bench && ./run_emulator.sh' done } collect_results() { # collect results, from bench_host to controller - scp -r ubuntu@${bench_client}:${rubbos_home}/bench/bench/* ${local_results_dir} + scp ${SSH_ARGS} -r ubuntu@${bench_client}:${rubbos_home}/bench/bench/* ${local_results_dir} } process_results() { @@ -325,16 +377,22 @@ main() { read_conf echo "==> fetch_remote_resources:" fetch_remote_resources + echo "==> direct_ssh:" + direct_ssh + echo "==> start_puppet_service:" + start_puppet_service echo "==> prepare_manifests:" prepare_manifests - echo "==> execute_catalog:" - execute_catalog + echo "==> execute_catalog start:" + execute_catalog start echo "==> run_emulator:" run_emulator echo "==> collect_results (to controller:${local_results_dir}):" collect_results echo "==> process_results:" process_results + echo "==> execute_catalog clean:" + execute_catalog clean } main