Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash -x
- # $STORAGE_ACCOUNT_SECRET -- Amazon WS credential: secret access key
- # $STORAGE_ACCOUNT_ID -- Amazon WS credential: access key
- # check if /mnt/solr volume exists
- if [ ! -d /mnt/solr ]
- then
- echo "/mnt/solr not ready"
- exit 1
- fi
- ubuntu_version=`cat /etc/os-release | grep VERSION_ID | cut -d '=' -f2 | cut -d '.' -f1 | sed 's/"//g'`
- if [ $ubuntu_version -lt 16 ]
- then
- service_cmd="service tomcat7"
- tomcat_home="/var/lib/tomcat7"
- tomcat_user="tomcat7"
- catalina_file="/etc/default/tomcat7"
- else
- service_cmd="service tomcat"
- tomcat_home="/opt/tomcat"
- tomcat_user="tomcat"
- catalina_file="/opt/tomcat/bin/setenv.sh"
- fi
- echo "Stopping tomcat for deployment"
- eval "$service_cmd stop"
- echo "Stopping indexing for deployment"
- mv /etc/cron.d/linko-sync /mnt/solr/linko-sync
- pushd /mnt/solr
- # Set files to download based on naming and version number
- solr_pkg=osp-se-solr-config-$OSP_VERSION.tar.gz
- webservice_pkg=osp-se-webservice-$OSP_VERSION.war
- webservice_app=$TOMCAT_WEBAPPS_ROOT/$CONTEXT_NAME
- indexer_pkg=osp-se-indexer-$OSP_VERSION.tar.gz
- indexer_conf=osp-se-indexer-$OSP_VERSION-conf-data.tar.gz
- # Make sure old files are removed
- rm -f osp-se-*
- rm -f log4j.xml
- # download files from S3 bucket
- echo "Downloading $solr_pkg..."
- /usr/bin/s3cmd get s3://$S3_BUCKET_NAME/Linko/$solr_pkg /mnt/solr/$solr_pkg
- echo "Downloading $webservice_pkg..."
- /usr/bin/s3cmd get s3://$S3_BUCKET_NAME/Linko/$webservice_pkg /mnt/solr/$webservice_pkg
- echo "Downloading $indexer_pkg..."
- /usr/bin/s3cmd get s3://$S3_BUCKET_NAME/Linko/$indexer_pkg /mnt/solr/$indexer_pkg
- echo "Downloading $indexer_conf..."
- /usr/bin/s3cmd get s3://$S3_BUCKET_NAME/Linko/$indexer_conf /mnt/solr/$indexer_conf
- echo "Downloading log4j.xml..."
- /usr/bin/s3cmd get s3://$S3_BUCKET_NAME/Linko/log4j.xml /mnt/solr/log4j.xml
- for source_file in $solr_pkg $webservice_pkg $indexer_pkg $indexer_conf log4j.xml
- do
- if [ ! -f "$source_file" ]; then
- echo "The $source_file is missing from the $S3_BUCKET_NAME/Linko"
- exit 404
- fi
- done
- # Clean old application files
- echo "Cleaning multicore..."
- rm -rf multicore
- echo "Cleaning indexer..."
- rm -rf indexer/lib
- rm -rf indexer/data
- mkdir -p indexer/lib indexer/data
- echo "Undeploying webservice..."
- rm -rf $webservice_app
- rm -rf ${webservice_app}.war
- # Install new application files
- echo "Installing SOLR core..."
- tar xzvf $solr_pkg
- rm -f $solr_pkg
- echo "Placing LOG4J in tomcat conf directory"
- mv log4j.xml $tomcat_home/conf/
- chown $tomcat_user:$tomcat_user $tomcat_home/conf/log4j.xml
- echo "Installing indexer..."
- tar xzvf $indexer_pkg --strip=2
- tar xzvf $indexer_conf --strip=2
- rm -f $indexer_pkg $indexer_conf
- # remove all mac files, if there are any
- find . -type f -name ._\* -exec rm {} \;
- # Change owner
- chown -R $tomcat_user:$tomcat_user /mnt/solr/
- # Indexer fixes
- echo "Applying indexer fixes..."
- # correct tomcat port and adds path
- #echo "Modifying tomcat ports and paths for indexer"
- #sed -i "s|8080|$HTTP_PORT\/osp-se|g" /mnt/solr/indexer/conf/application.properties
- #sed -i "s|8080|$HTTP_PORT|g" /mnt/solr/indexer/bin/update_deals.py
- # Change script permissions to allow execution
- echo "Setting indexer bin execute permissions"
- chmod +x /mnt/solr/indexer/bin/*
- # Add system variables to script and remove known host prompt from sync_amdata.sh
- echo "Fixing Indexer sync and indexing scripts"
- #sed -i 's/^PROJECT_DIR=.*/export PROJECT_DIR=\/mnt\/solr\/indexer/' /mnt/solr/indexer/bin/sync_amdata.sh
- #sed -i 's/^DATA_DIR=.*/export DATA_DIR=\/mnt\/solr\/datafeed/' /mnt/solr/indexer/bin/sync_amdata.sh
- #sed -i "/^export DATA_DIR=.*/a export JAVA_HOME=$JAVA_HOME/" /mnt/solr/indexer/bin/sync_amdata.sh
- #sed -i 's/scp\ -i/scp\ -o\ StrictHostKeyChecking=no\ -i/' /mnt/solr/indexer/bin/sync_amdata.sh
- sed -i 's/^DATA_DIR=/export DATA_DIR=/' /mnt/solr/indexer/bin/start-indexer-linko.sh
- sed -i 's/^PROJECT_DIR=.*/export PROJECT_DIR=\/mnt\/solr\/indexer/' /mnt/solr/indexer/bin/start-indexer-linko.sh
- sed -i "/^export DATA_DIR=.*/a export JAVA_HOME=$JAVA_HOME/" /mnt/solr/indexer/bin/start-indexer-linko.sh
- sed -i "s/^export LINKO=.*/export LINKO=$LINKO_ENV/" /mnt/solr/indexer/bin/sync_ypdata.sh
- sed -i "s|^#export DCOSP_SERVICE_URL=.*|export DCOSP_SERVICE_URL=$DCOSP_SERVICE_URL|" /mnt/solr/indexer/bin/sync_ypdata.sh
- # Install correct New Relic Key and set App Name
- echo "Configuring Indexer New Relic"
- sed -i "s/license_key: '.*'/license_key: '$NR_LICENCE'/" /mnt/solr/indexer/bin/newrelic/newrelic.yml
- sed -i "s|^\s*app_name.*| app_name: '$ENV_NAME-$DEPLOYMENT_CONTEXT-Indexer'|g" /mnt/solr/indexer/bin/newrelic/newrelic.yml
- echo "Installing webservice..."
- mv $webservice_pkg ${webservice_app}.war
- popd
- # Apply any New Relic changes to base install
- pushd /var/lib
- sed -i "s|license_key:.*|license_key: '$NR_LICENCE'|g" newrelic/newrelic.yml
- sed -i "s|app_name:.*|app_name: '$NR_APPNAME'|g" newrelic/newrelic.yml
- popd
- # Apply any New Relic changes to tomcat
- sed -i "s|^\s*app_name.*| app_name: '$NR_APPNAME'|g" /var/lib/newrelic/tomcat/newrelic.yml
- # Apply tomcat configuration changes
- sed -i "s|CATALINA_OPTS.*|CATALINA_OPTS=\"-javaagent:/var/lib/newrelic/tomcat/newrelic.jar -$JAVA_XMX -$JAVA_XMS\"|" $catalina_file
- # Restart tomcat and restore indexing
- echo "Starting tomcat..."
- eval "$service_cmd restart"
- # Make sure webservice deployed
- sleep 60
- # Check that the exploded war file is there.
- if [ ! -d "$webservice_app" ]; then
- echo "something went wrong with the war deployment";
- exit 1
- fi
- echo "Re-enabling indexing crontasks..."
- mv /mnt/solr/linko-sync /etc/cron.d/linko-sync
- chown root:root /etc/cron.d/linko-sync
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement