diff options
-rwxr-xr-x | rubbos/rubbos_scripts/1-1-1/set_bottlenecks_rubbos_env.sh | 18 | ||||
-rwxr-xr-x | utils/infra_setup/heat_template/HOT_create_instance.sh | 243 | ||||
-rw-r--r-- | utils/infra_setup/heat_template/bottlenecks_rubbos_hot.yaml | 291 | ||||
-rw-r--r-- | utils/infra_setup/vm_dev_setup/README.rst | 14 | ||||
-rw-r--r-- | utils/infra_setup/vm_dev_setup/package.conf | 11 | ||||
-rwxr-xr-x | utils/infra_setup/vm_dev_setup/setup_env.sh | 83 |
6 files changed, 555 insertions, 105 deletions
diff --git a/rubbos/rubbos_scripts/1-1-1/set_bottlenecks_rubbos_env.sh b/rubbos/rubbos_scripts/1-1-1/set_bottlenecks_rubbos_env.sh index fa270956..a68e0cac 100755 --- a/rubbos/rubbos_scripts/1-1-1/set_bottlenecks_rubbos_env.sh +++ b/rubbos/rubbos_scripts/1-1-1/set_bottlenecks_rubbos_env.sh @@ -3,15 +3,15 @@ set -o allexport # HOSTS -CONTROL_HOST=192.168.122.11 -HTTPD_HOST=192.168.122.12 -MYSQL1_HOST=192.168.122.13 -TOMCAT1_HOST=192.168.122.14 -CLIENT1_HOST=192.168.122.15 -CLIENT2_HOST=192.168.122.16 -CLIENT3_HOST=192.168.122.17 -CLIENT4_HOST=192.168.122.18 -BENCHMARK_HOST=192.168.122.19 +CONTROL_HOST=REPLACE_CONTROL_HOST +HTTPD_HOST=REPLACE_HTTPD_HOST +MYSQL1_HOST=REPLACE_MYSQL1_HOST +TOMCAT1_HOST=REPLACE_TOMCAT1_HOST +CLIENT1_HOST=REPLACE_CLIENT1_HOST +CLIENT2_HOST=REPLACE_CLIENT2_HOST +CLIENT3_HOST=REPLACE_CLIENT3_HOST +CLIENT4_HOST=REPLACE_CLIENT4_HOST +BENCHMARK_HOST=REPLACE_BENCHMARK_HOST # Experiment name on OPNFV BOTTLNECKS_NAME=bottlenecks diff --git a/utils/infra_setup/heat_template/HOT_create_instance.sh b/utils/infra_setup/heat_template/HOT_create_instance.sh index 9d80022d..8ca54b06 100755 --- a/utils/infra_setup/heat_template/HOT_create_instance.sh +++ b/utils/infra_setup/heat_template/HOT_create_instance.sh @@ -4,132 +4,183 @@ set -ex bottlenecks_env_prepare() { - if [ -d $BOTTLENECKS_REPO_DIR ]; then - rm -rf ${BOTTLENECKS_REPO_DIR} - fi + if [ -d $BOTTLENECKS_REPO_DIR ]; then + rm -rf ${BOTTLENECKS_REPO_DIR} + fi - mkdir -p ${BOTTLENECKS_REPO_DIR} - git config --global http.sslVerify false - git clone ${BOTTLENECKS_REPO} ${BOTTLENECKS_REPO_DIR} + mkdir -p ${BOTTLENECKS_REPO_DIR} + git config --global http.sslVerify false + git clone ${BOTTLENECKS_REPO} ${BOTTLENECKS_REPO_DIR} - source $BOTTLENECKS_REPO_DIR/rubbos/rubbos_scripts/1-1-1/scripts/env_preparation.sh + source $BOTTLENECKS_REPO_DIR/rubbos/rubbos_scripts/1-1-1/scripts/env_preparation.sh + chmod 600 $KEY_PATH/bottlenecks_key } -bottlenecks_create_instance() -{ - echo "create bottlenecks instance using heat template" - - echo "upload keypair" - nova keypair-add --pub_key $KEY_PATH/bottlenecks_key.pub $KEY_NAME - #need FIX, only upload the public key? should be keypair - - echo "use heat template to create stack" - cd $HOT_PATH - heat stack-create bottlenecks -f ${TEMPLATE_NAME} -P "image=$IMAGE_NAME;key=$KEY_NAME;public_network=$PUBLIC_NET_NAME" - sleep 60 - heat stack-list - heat stack-show bottlenecks - nova list - heat stack-delete bottlenecks - - #need FIX, use stack to create 9 VMs +wait_heat_stack_complete() { + retry=0 + while true + do + status=$(heat stack-list | grep bottlenecks | awk '{print $6}') + if [ x$status = x"CREATE_COMPLETE" ]; then + echo "bottlenecks stacke create complete" + heat stack-show bottlenecks + break; + fi + echo "bottlenecks stack status $status" + sleep 1 + let retry+=1 + if [[ $retry -ge $1 ]];then + echo "Heat stack create timeout!!!" + exit 1 + fi + done } -bottlenecks_cleanup() -{ - echo "clean up bottlenecks images and keys" - - if glance image-list; then - for image in $(glance image-list | grep -e $IMAGE_NAME | awk '{print $2}'); do - echo "clean up image $image" - glance image-delete $image || true - done - fi - - if nova keypair-list; then - for key in $(nova keypair-list | grep -e $KEY_NAME | awk '{print $2}'); do - echo "clean up key $key" - nova keypair-delete || true - done - fi +wait_rubbos_control_ok() { + control_ip=$(nova list | grep rubbos_control | awk '{print $13}') + + retry=0 + until timeout 1s ssh $ssh_args ec2-user@$control_ip "exit" >/dev/null 2>&1 + do + echo "retry connect rubbos control $retry" + sleep 1 + let retry+=1 + if [[ $retry -ge $1 ]];then + echo "rubbos control start timeout !!!" + exit 1 + fi + done + ssh $ssh_args ec2-user@$control_ip "uname -a" } -bottlenecks_build_image() +bottlenecks_check_instance_ok() { - echo "build bottlenecks image" + echo "check instance" - #need FIX + wait_heat_stack_complete 120 + wait_rubbos_control_ok 300 + nova list | grep rubbos_ } -bottlenecks_load_cirros_image() +bottlenecks_create_instance() { - echo "load bottlenecks cirros image" + echo "create bottlenecks instance using heat template" - wget http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img -O /tmp/cirros.img + echo "upload keypair" + nova keypair-add --pub_key $KEY_PATH/bottlenecks_key.pub $KEY_NAME - result=$(glance image-create \ - --name cirros-0.3.3 \ - --disk-format qcow2 \ - --container-format bare \ - --file /tmp/cirros.img) - echo "$result" + echo "create flavor" + nova flavor-create $FLAVOR_NAME 200 2048 10 1 - rm -rf /tmp/cirros.img + echo "use heat template to create stack" + cd $HOT_PATH + heat stack-create bottlenecks -f ${TEMPLATE_NAME} \ + -P "image=$IMAGE_NAME;key_name=$KEY_NAME;public_net=$PUBLIC_NET_NAME;flavor=$FLAVOR_NAME" +} - IMAGE_ID_CIRROS=$(echo "$result" | grep " id " | awk '{print $(NF-1)}') - if [ -z "$IMAGE_ID_CIRROS" ]; then - echo 'failed to upload cirros image to openstack' - exit 1 - fi +bottlenecks_rubbos_run() +{ + echo "Run Rubbos" + control_ip=$(nova list | grep rubbos_control | awk '{print $13}') + for i in rubbos_benchmark rubbos_client1 rubbos_client2 rubbos_client3 \ + rubbos_client4 rubbos_control rubbos_httpd rubbos_mysql1 \ + rubbos_tomcat1 + do + ip=$(nova list | grep $i | awk '{print $12}' | awk -F [=,] '{print $2}') + echo "$i=$ip" >> $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup/hosts.conf + done + + scp $ssh_args -r \ + $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup \ + ec2-user@$control_ip:/tmp + ssh $ssh_args \ + ec2-user@$control_ip "bash /tmp/vm_dev_setup/setup_env.sh" + + rm -rf $BOTTLENECKS_REPO_DIR/utils/infra_setup/vm_dev_setup/hosts.conf +} - echo "cirros image id: $IMAGE_ID_CIRROS" +bottlenecks_cleanup() +{ + echo "clean up bottlenecks images and keys" + + if heat stack-list; then + for stack in $(heat stack-list | grep -e bottlenecks | awk '{print $2}'); do + echo "clean up stack $stack" + heat stack-delete $stack || true + sleep 30 + done + fi + + if glance image-list; then + for image in $(glance image-list | grep -e $IMAGE_NAME | awk '{print $2}'); do + echo "clean up image $image" + glance image-delete $image || true + done + fi + + if nova keypair-list; then + for key in $(nova keypair-list | grep -e $KEY_NAME | awk '{print $2}'); do + echo "clean up key $key" + nova keypair-delete $key || true + done + fi + + if nova flavor-list; then + for flavor in $(nova flavor-list | grep -e $FLAVOR_NAME | awk '{print $2}'); do + echo "clean up flavor $flavor" + nova flavor-delete $flavor || true + done + fi } -bottlenecks_load_image() +bottlenecks_load_bottlenecks_image() { - echo "load bottlenecks image" + echo "load bottlenecks image" - result=$(glance --os-image-api-version 1 image-create \ - --name $IMAGE_NAME \ - --is-public true --disk-format qcow2 \ - --container-format bare \ - --file $IMAGE_FILE_NAME) - echo "$result" + curl --connect-timeout 10 -o /tmp/bottlenecks-trusty-server.img $IMAGE_URL -v - GLANCE_IMAGE_ID=$(echo "$result" | grep " id " | awk '{print $(NF-1)}') + result=$(glance image-create \ + --name $IMAGE_NAME \ + --disk-format qcow2 \ + --container-format bare \ + --file /tmp/bottlenecks-trusty-server.img) + echo "$result" - if [ -z "$GLANCE_IMAGE_ID" ]; then - echo 'add image to glance failed' - exit 1 - fi + rm -rf /tmp/bottlenecks-trusty-server.img - sudo rm -f $IMAGE_FILE_NAME + IMAGE_ID_BOTTLENECKS=$(echo "$result" | grep " id " | awk '{print $(NF-1)}') + if [ -z "$IMAGE_ID_BOTTLENECKS" ]; then + echo 'failed to upload bottlenecks image to openstack' + exit 1 + fi - echo "add glance image completed: $GLANCE_IMAGE_ID" + echo "bottlenecks image id: $IMAGE_ID_BOTTLENECKS" } main() { - echo "create instances with heat template" - - BOTTLENECKS_REPO=https://gerrit.opnfv.org/gerrit/bottlenecks - BOTTLENECKS_REPO_DIR=/tmp/opnfvrepo/bottlenecks - #IMAGE_URL=http://205.177.226.235:9999 - IMAGE_NAME=cirros-0.3.3 - #need FIX, need a script to transfer the image from the url to be the installer images - KEY_PATH=$BOTTLENECKS_REPO_DIR/utils/infra_setup/bottlenecks_key - HOT_PATH=$BOTTLENECKS_REPO_DIR/utils/infra_setup/heat_template - KEY_NAME=bottlenecks_key - TEMPLATE_NAME=bottlenecks_template1.yaml - PUBLIC_NET_NAME=net04_ext - #need FIX - #IMAGE_FILE_NAME="" - - bottlenecks_env_prepare - bottlenecks_cleanup - #bottlenecks_build_image - bottlenecks_load_cirros_image - bottlenecks_create_instance + echo "create instances with heat template" + + BOTTLENECKS_REPO=https://gerrit.opnfv.org/gerrit/bottlenecks + BOTTLENECKS_REPO_DIR=/tmp/opnfvrepo/bottlenecks + #IMAGE_URL=http://artifacts.opnfv.org/bottlenecks/rubbos/bottlenecks-trusty-server.img + IMAGE_URL=https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img + IMAGE_NAME=bottlenecks-trusty-server + KEY_PATH=$BOTTLENECKS_REPO_DIR/utils/infra_setup/bottlenecks_key + HOT_PATH=$BOTTLENECKS_REPO_DIR/utils/infra_setup/heat_template + KEY_NAME=bottlenecks-key + FLAVOR_NAME=bottlenecks-flavor + TEMPLATE_NAME=bottlenecks_rubbos_hot.yaml + PUBLIC_NET_NAME=net04_ext + ssh_args="-o StrictHostKeyChecking=no -o BatchMode=yes -i $KEY_PATH/bottlenecks_key" + + bottlenecks_env_prepare + bottlenecks_cleanup + bottlenecks_load_bottlenecks_image + bottlenecks_create_instance + bottlenecks_check_instance_ok + bottlenecks_rubbos_run + bottlenecks_cleanup } main diff --git a/utils/infra_setup/heat_template/bottlenecks_rubbos_hot.yaml b/utils/infra_setup/heat_template/bottlenecks_rubbos_hot.yaml new file mode 100644 index 00000000..1b55de5a --- /dev/null +++ b/utils/infra_setup/heat_template/bottlenecks_rubbos_hot.yaml @@ -0,0 +1,291 @@ +heat_template_version: 2013-05-23 + +description: > + HOT template to create a new neutron network plus a router to the public + network, and for deploying nine servers into the new network. The template also + assigns floating IP addresses to rubbos_control server so it is routable from the + public network. +parameters: + key_name: + type: string + description: Name of keypair to assign to servers + default: bottlenecks-key + image: + type: string + description: Name of image to use for servers + default: bottlenecks-trusty-server + flavor: + type: string + description: Flavor to use for servers + default: bottlenecks-flavor + public_net: + type: string + description: > + ID or name of public network for which floating IP addresses will be allocated + default: net04_ext + private_net_name: + type: string + description: Name of private network to be created + default: bottlenecks-private + private_net_cidr: + type: string + description: Private network address (CIDR notation) + default: "10.0.10.0/24" + private_net_gateway: + type: string + description: Private network gateway address + default: "10.0.10.1" + private_net_pool_start: + type: string + description: Start of private network IP address allocation pool + default: "10.0.10.2" + private_net_pool_end: + type: string + description: End of private network IP address allocation pool + default: "10.0.10.199" + +resources: + private_net: + type: OS::Neutron::Net + properties: + name: { get_param: private_net_name } + + private_subnet: + type: OS::Neutron::Subnet + properties: + network_id: { get_resource: private_net } + cidr: { get_param: private_net_cidr } + gateway_ip: { get_param: private_net_gateway } + allocation_pools: + - start: { get_param: private_net_pool_start } + end: { get_param: private_net_pool_end } + + router: + type: OS::Neutron::Router + properties: + external_gateway_info: + network: { get_param: public_net } + + router_interface: + type: OS::Neutron::RouterInterface + properties: + router_id: { get_resource: router } + subnet_id: { get_resource: private_subnet } + + rubbos_control: + type: OS::Nova::Server + properties: + name: rubbos_control + image: { get_param: image } + flavor: { get_param: flavor } + key_name: { get_param: key_name } + networks: + - port: { get_resource: rubbos_control_port } + + rubbos_control_port: + type: OS::Neutron::Port + properties: + network_id: { get_resource: private_net } + fixed_ips: + - subnet_id: { get_resource: private_subnet } + security_groups: [{ get_resource: server_security_group }] + + rubbos_control_floating_ip: + type: OS::Neutron::FloatingIP + properties: + floating_network: { get_param: public_net } + port_id: { get_resource: rubbos_control_port } + + rubbos_httpd: + type: OS::Nova::Server + properties: + name: rubbos_httpd + image: { get_param: image } + flavor: { get_param: flavor } + key_name: { get_param: key_name } + networks: + - port: { get_resource: rubbos_httpd_port } + + rubbos_httpd_port: + type: OS::Neutron::Port + properties: + network_id: { get_resource: private_net } + fixed_ips: + - subnet_id: { get_resource: private_subnet } + security_groups: [{ get_resource: server_security_group }] + + rubbos_mysql1: + type: OS::Nova::Server + properties: + name: rubbos_mysql1 + image: { get_param: image } + flavor: { get_param: flavor } + key_name: { get_param: key_name } + networks: + - port: { get_resource: rubbos_mysql1_port } + + rubbos_mysql1_port: + type: OS::Neutron::Port + properties: + network_id: { get_resource: private_net } + fixed_ips: + - subnet_id: { get_resource: private_subnet } + security_groups: [{ get_resource: server_security_group }] + + rubbos_tomcat1: + type: OS::Nova::Server + properties: + name: rubbos_tomcat1 + image: { get_param: image } + flavor: { get_param: flavor } + key_name: { get_param: key_name } + networks: + - port: { get_resource: rubbos_tomcat1_port } + + rubbos_tomcat1_port: + type: OS::Neutron::Port + properties: + network_id: { get_resource: private_net } + fixed_ips: + - subnet_id: { get_resource: private_subnet } + security_groups: [{ get_resource: server_security_group }] + + rubbos_client1: + type: OS::Nova::Server + properties: + name: rubbos_client1 + image: { get_param: image } + flavor: { get_param: flavor } + key_name: { get_param: key_name } + networks: + - port: { get_resource: rubbos_client1_port } + + rubbos_client1_port: + type: OS::Neutron::Port + properties: + network_id: { get_resource: private_net } + fixed_ips: + - subnet_id: { get_resource: private_subnet } + security_groups: [{ get_resource: server_security_group }] + + rubbos_client2: + type: OS::Nova::Server + properties: + name: rubbos_client2 + image: { get_param: image } + flavor: { get_param: flavor } + key_name: { get_param: key_name } + networks: + - port: { get_resource: rubbos_client2_port } + + rubbos_client2_port: + type: OS::Neutron::Port + properties: + network_id: { get_resource: private_net } + fixed_ips: + - subnet_id: { get_resource: private_subnet } + security_groups: [{ get_resource: server_security_group }] + + rubbos_client3: + type: OS::Nova::Server + properties: + name: rubbos_client3 + image: { get_param: image } + flavor: { get_param: flavor } + key_name: { get_param: key_name } + networks: + - port: { get_resource: rubbos_client3_port } + + rubbos_client3_port: + type: OS::Neutron::Port + properties: + network_id: { get_resource: private_net } + fixed_ips: + - subnet_id: { get_resource: private_subnet } + security_groups: [{ get_resource: server_security_group }] + + rubbos_client4: + type: OS::Nova::Server + properties: + name: rubbos_client4 + image: { get_param: image } + flavor: { get_param: flavor } + key_name: { get_param: key_name } + networks: + - port: { get_resource: rubbos_client4_port } + + rubbos_client4_port: + type: OS::Neutron::Port + properties: + network_id: { get_resource: private_net } + fixed_ips: + - subnet_id: { get_resource: private_subnet } + security_groups: [{ get_resource: server_security_group }] + + rubbos_benchmark: + type: OS::Nova::Server + properties: + name: rubbos_benchmark + image: { get_param: image } + flavor: { get_param: flavor } + key_name: { get_param: key_name } + networks: + - port: { get_resource: rubbos_benchmark_port } + + rubbos_benchmark_port: + type: OS::Neutron::Port + properties: + network_id: { get_resource: private_net } + fixed_ips: + - subnet_id: { get_resource: private_subnet } + security_groups: [{ get_resource: server_security_group }] + + server_security_group: + type: OS::Neutron::SecurityGroup + properties: + description: Rubbos group for servers access. + name: rubbos-security-group + rules: [ + {remote_ip_prefix: 0.0.0.0/0, + protocol: tcp, + port_range_min: 1, + port_range_max: 65535}, + {remote_ip_prefix: 0.0.0.0/0, + protocol: udp, + port_range_min: 1, + port_range_max: 65535}, + {remote_ip_prefix: 0.0.0.0/0, + protocol: icmp}] + +outputs: + rubbos_control_private_ip: + description: IP address of rubbos_control in private network + value: { get_attr: [ rubbos_control, first_address ] } + rubbos_control_public_ip: + description: Floating IP address of rubbos_control in public network + value: { get_attr: [ rubbos_control_floating_ip, floating_ip_address ] } + rubbos_httpd_private_ip: + description: IP address of rubbos_httpd in private network + value: { get_attr: [ rubbos_httpd, first_address ] } + rubbos_mysql1_private_ip: + description: IP address of rubbos_mysql1 in private network + value: { get_attr: [ rubbos_mysql1, first_address ] } + rubbos_tomcat1_private_ip: + description: IP address of rubbos_tomcat1 in private network + value: { get_attr: [ rubbos_tomcat1, first_address ] } + rubbos_client1_private_ip: + description: IP address of rubbos_client1 in private network + value: { get_attr: [ rubbos_client1, first_address ] } + rubbos_client2_private_ip: + description: IP address of rubbos_client2 in private network + value: { get_attr: [ rubbos_client2, first_address ] } + rubbos_client3_private_ip: + description: IP address of rubbos_client3 in private network + value: { get_attr: [ rubbos_client3, first_address ] } + rubbos_client4_private_ip: + description: IP address of rubbos_client4 in private network + value: { get_attr: [ rubbos_client4, first_address ] } + rubbos_benchmark_private_ip: + description: IP address of rubbos_benchmark in private network + value: { get_attr: [ rubbos_benchmark, first_address ] } + diff --git a/utils/infra_setup/vm_dev_setup/README.rst b/utils/infra_setup/vm_dev_setup/README.rst new file mode 100644 index 00000000..49a8f7f1 --- /dev/null +++ b/utils/infra_setup/vm_dev_setup/README.rst @@ -0,0 +1,14 @@ +.. this folder is used to setup env for bottlenecks after ssh into VMs. + +how to use the script in this directory +======================================= + +The script vm_setup.sh is used to git clone the bottlenecks code repo +and download the dependent packages into the Cache from the public IP +where they stored. + +The parameters are defined in package.conf file. + +Revision: _sha1_ + +Build date: |today| diff --git a/utils/infra_setup/vm_dev_setup/package.conf b/utils/infra_setup/vm_dev_setup/package.conf new file mode 100644 index 00000000..18eb5c56 --- /dev/null +++ b/utils/infra_setup/vm_dev_setup/package.conf @@ -0,0 +1,11 @@ +TIMEOUT=10 +export PACKAGE_URL=${PACKAGE_URL:-http://artifacts.opnfv.org/bottlenecks} + +export BOTTLENECKS_REPO=${BOTTLENECKS_REPO:-https://gerrit.opnfv.org/gerrit/bottlenecks} +export BOTTLENECKS_REPO_DIR=${BOTTLENECKS_REPO_DIR:-/bottlenecks} +export RUBBOS_DIR=${RUBBOS_DIR:-$BOTTLENECKS_REPO_DIR/rubbos} +export RUBBOS_MULINI6_DIR=${RUBBOS_MULINI6_DIR:-$RUBBOS_DIR/rubbos_scripts} +export RUBBOS_RUN_DIR=${RUBBOS_RUN_DIR:-$BOTTLENECKS_REPO_DIR/rubbos/rubbos_scripts/1-1-1/scripts} +export RUBBOS_EXE_DIR=${RUBBOS_EXE_DIR:-$BOTTLENECKS_REPO_DIR/rubbos/rubbos_scripts/1-1-1/scripts} +export RUBBOS_APP_TOOLS_URL=${RUBBOS_APP_TOOLS_URL:-$PACKAGE_URL/rubbos/app_tools.tar.gz} +export RUBBOS_MULINI6_URL=${RUBBOS_MULINI6_URL:-$PACKAGE_URL/rubbos/rubbosMulini6.tar.gz} diff --git a/utils/infra_setup/vm_dev_setup/setup_env.sh b/utils/infra_setup/vm_dev_setup/setup_env.sh new file mode 100755 index 00000000..fa59dc47 --- /dev/null +++ b/utils/infra_setup/vm_dev_setup/setup_env.sh @@ -0,0 +1,83 @@ +#!/bin/bash + +set -ex + +bottlenecks_prepare_env() +{ + echo "Bottlenecks: install preinstall packages in VM" + sudo apt-get update + + for i in $PreInstall_Packages; do + if ! apt --installed list 2>/dev/null |grep "\<$i\>" + then + sudo apt-get install -y --force-yes $i + fi + done +} + +bottlenecks_download_repo() +{ + echo "Bottlenecks: download bottlenecks repo" + + if [ -d $BOTTELENECKS_REPO_DIR/.git ]; then + cd $BOTTLENECKS_REPO_DIR + git pull origin master + cd - + else + rm -rf $BOTTLENECKS_REPO_DIR + git clone $BOTTLENECKS_REPO $BOTTLENECKS_REPO_DIR + fi +} + +bottlenecks_config_hosts_ip() +{ + sed -i -e "s/REPLACE_CONTROL_HOST/$rubbos_control/g" \ + -e "s/REPLACE_HTTPD_HOST/$rubbos_httpd/g" \ + -e "s/REPLACE_MYSQL1_HOST/$rubbos_mysql1/g" \ + -e "s/REPLACE_TOMCAT1_HOST/$rubbos_tomcat1/g" \ + -e "s/REPLACE_CLIENT1_HOST/$rubbos_client1/g" \ + -e "s/REPLACE_CLIENT2_HOST/$rubbos_client2/g" \ + -e "s/REPLACE_CLIENT3_HOST/$rubbos_client3/g" \ + -e "s/REPLACE_CLIENT4_HOST/$rubbos_client4/g" \ + -e "s/REPLACE_BENCHMARK_HOST/$rubbos_benchmark/g" \ + $BOTTELENECKS_REPO_DIR/rubbos/rubbos_scripts/1-1-1/set_bottlenecks_rubbos_env.sh +} + +bottlenecks_download_packages() +{ + echo "Bottlenecks: download rubbos dependent packages from artifacts" + + curl --connect-timeout 10 -o /tmp/app_tools.tar.gz $RUBBOS_APP_TOOLS_URL 2>/dev/null + tar zxvf /tmp/app_tools.tar.gz -C $RUBBOS_DIR + rm -rf /tmp/app_tools.tar.gz + curl --connect-timeout 10 -o /tmp/rubbosMulini6.tar.gz $RUBBOS_MULINI6_URL 2>/dev/null + tar zxvf /tmp/rubbosMulini6.tar.gz -C $RUBBOS_MULINI6_DIR + rm -rf /tmp/rubbosMulini6.tar.gz +} + +bottlenecks_rubbos_install_exe() +{ + echo "Bottlenecks: install and run rubbos" + + cd $RUBBOS_RUN_DIR + ./run.sh + cd $RUBBOS_EXE_DIR + ./CONTROL_rubbos_exec.sh +} + +main() +{ + PreInstall_Packages="git gcc gettext g++ libaio1 libaio-dev make" + SCRIPT_DIR=`cd ${BASH_SOURCE[0]%/*};pwd` + + source $SCRIPT_DIR/package.conf + source $SCRIPT_DIR/hosts.conf + + bottlenecks_prepare_env + bottlenecks_download_repo + bottlenecks_download_packages + bottlenecks_rubbos_install_exe +} + +main +set +ex |