|
@@ -0,0 +1,148 @@
|
|
|
+#!/bin/bash
|
|
|
+
|
|
|
+echo "Starting program.."
|
|
|
+
|
|
|
+# wait for pg startup
|
|
|
+echo "Checking cas postgres server health.."
|
|
|
+wait-for-it.sh postgres.cas:5432 -t 0
|
|
|
+
|
|
|
+# wait for lb startup
|
|
|
+echo "Checking cas postgres server health.."
|
|
|
+wait-for-it.sh wisecloud.cas:5432 -t 0
|
|
|
+
|
|
|
+# wait for redis startup
|
|
|
+echo "Checking redis server health.."
|
|
|
+wait-for-it.sh redis.redis:7000 -t 0
|
|
|
+
|
|
|
+
|
|
|
+MODULE_HOME=/opt/wisecloud/cas/cas_server
|
|
|
+CAS_MAIN_CONF=${MODULE_HOME}/software/conf.ini
|
|
|
+LOG_DB=${MODULE_HOME}/software/utils/logsuite/logdb.conf
|
|
|
+SQL_FILE=${MODULE_HOME}/sql/setup.sql
|
|
|
+CAS_CLIENT_CONF=${MODULE_HOME}/software/utils/casclient/casclient.ini
|
|
|
+
|
|
|
+# replace the password of cas postgres
|
|
|
+sed -i "/^ *username =/s/.*/username = $POSTGRES_USER/g" $CAS_MAIN_CONF
|
|
|
+sed -i "/^ *password =/s/.*/password = $POSTGRES_PASSWORD/g" $CAS_MAIN_CONF
|
|
|
+
|
|
|
+
|
|
|
+# replace the redis password
|
|
|
+REDIS_PASSWORD=`curl http://rancher-metadata/latest/stacks/redis/services/redis/metadata/REDIS_PASSWORD`
|
|
|
+[ "$REDIS_PASSWORD" = "Not found" ] && unset REDIS_PASSWORD
|
|
|
+REDIS_PASSWORD=${REDIS_PASSWORD:-123456}
|
|
|
+sed -i "/password_redis/s/.*/password_redis = $REDIS_PASSWORD/g" $CAS_MAIN_CONF
|
|
|
+
|
|
|
+
|
|
|
+sed -i "/usrid/s/.*/usrid=$POSTGRES_USER/g" $LOG_DB
|
|
|
+sed -i "/passwd/s/.*/passwd=$POSTGRES_PASSWORD/g" $LOG_DB
|
|
|
+
|
|
|
+sed -i "/password/s/.*/password:$REDIS_PASSWORD/g" $CAS_CLIENT_CONF
|
|
|
+
|
|
|
+
|
|
|
+# copy the lib
|
|
|
+echo "copy the libs"
|
|
|
+yes | cp -rLfap ${MODULE_HOME}/software/utils/lib/* /usr/lib/
|
|
|
+ln -s /usr/lib/libcas.so.1.1.4 /usr/lib/libcas.so
|
|
|
+ln -s /usr/lib/liblogsuite.so.1.1.6 /usr/lib/liblogsuite.so
|
|
|
+ldconfig
|
|
|
+
|
|
|
+
|
|
|
+# insert sql once
|
|
|
+if [ -f "${SQL_FILE}" ]
|
|
|
+then
|
|
|
+
|
|
|
+ # get the env uuid
|
|
|
+ env_uuid=`curl http://rancher-metadata/latest/self/host/environment_uuid`
|
|
|
+ echo "the env uuid is: $env_uuid"
|
|
|
+
|
|
|
+
|
|
|
+ # check env_data
|
|
|
+ if ping -c3 google.com &>/dev/null; then
|
|
|
+ domain_name=console.hk.svicloud.com:8080
|
|
|
+ # get the env name
|
|
|
+ SVICLOUD_ACCESS_KEY=${SVICLOUD_ACCESS_KEY:-7F52BB62596A3D3A4C5E}
|
|
|
+ SVICLOUD_SECRET_KEY=${SVICLOUD_SECRET_KEY:-pQcMx2trz7PhDwq7vC1oPUth1N6RobWsYUNv7JEm}
|
|
|
+ else
|
|
|
+ domain_name=console.svicloud.com:8090
|
|
|
+ # get the env name
|
|
|
+ SVICLOUD_ACCESS_KEY=${SVICLOUD_ACCESS_KEY:-F2A3DB5C0FE1247EC6A4}
|
|
|
+ SVICLOUD_SECRET_KEY=${SVICLOUD_SECRET_KEY:-AigNiQYKhPszMX5Jc79UfaCKsczY9owkX1v1cjVB}
|
|
|
+ fi
|
|
|
+
|
|
|
+ for ((m=0; m<=100; m++)); do
|
|
|
+
|
|
|
+ env_data=`curl "http://$domain_name/v1/project" --user ${SVICLOUD_ACCESS_KEY}:${SVICLOUD_SECRET_KEY} \
|
|
|
+ -H "Upgrade-Insecure-Requests: 1" 2>/dev/null | jq .data`
|
|
|
+
|
|
|
+ # echo -e "env_data:\n$env_data"
|
|
|
+
|
|
|
+ if echo $env_data | grep -q name; then
|
|
|
+ break
|
|
|
+ else
|
|
|
+ sleep 5
|
|
|
+ echo "retry to get project data $m times"
|
|
|
+ continue
|
|
|
+ fi
|
|
|
+
|
|
|
+ if [ $m -ge 100 ]; then
|
|
|
+ echo "failed to get project data"
|
|
|
+ exit 1
|
|
|
+ fi
|
|
|
+ done
|
|
|
+
|
|
|
+
|
|
|
+ # another stupid method :)
|
|
|
+ # # get the list count
|
|
|
+ # env_data_list_count=`echo "$env_data" | jq '. | length'`
|
|
|
+
|
|
|
+ # # loop to search the key
|
|
|
+ # for ((m=0; m<=$[env_data_list_count - 1]; m++)); do
|
|
|
+
|
|
|
+ # if echo "$env_data" | jq .[$m] | grep -wq $env_uuid; then
|
|
|
+ # env_name=`echo "${env_data}" | jq .[$m].name | xargs`
|
|
|
+ # break
|
|
|
+ # fi
|
|
|
+ # done
|
|
|
+
|
|
|
+ env_name=`echo "$env_data" | jq ".[] | select(.uuid==\"$env_uuid\") | .name" | xargs`
|
|
|
+
|
|
|
+ # print the env_name
|
|
|
+ [ -z "$env_name" ] && { echo "error: can not get the env name"; exit 1 ; } || echo "env name: $env_name"
|
|
|
+
|
|
|
+
|
|
|
+ # replace the sql file
|
|
|
+ sed -i "s/{{TUNA}}/wisecloud.tuna.${env_name}.sviyun.com/" $SQL_FILE
|
|
|
+ sed -i "s/{{AUTHCENTER}}/wisecloud.authcenter.${env_name}.sviyun.com/" $SQL_FILE
|
|
|
+ sed -i "s/{{CAS}}/wisecloud.cas.${env_name}.sviyun.com/" $SQL_FILE
|
|
|
+ sed -i "s/{{DCMP}}/wisecloud.dcmp.${env_name}.sviyun.com/" $SQL_FILE
|
|
|
+
|
|
|
+ echo "replaced internat domain to internet domain in SQL_FILE"
|
|
|
+
|
|
|
+ sleep 5
|
|
|
+
|
|
|
+ operator_updater=`psql -h wisecloud.cas -p 5432 "dbname=${POSTGRES_DB} user=${POSTGRES_USER} password=${POSTGRES_PASSWORD}" \
|
|
|
+ -tc "SELECT updater FROM operator where id='1';" | egrep -v "\-|value|\+" | xargs 2>/dev/null`
|
|
|
+
|
|
|
+ echo "##### operator_updater=$operator_updater"
|
|
|
+
|
|
|
+ if [ "${operator_updater}" != "admin" ]; then
|
|
|
+
|
|
|
+ echo "Begin to create db ${POSTGRES_DB}.."
|
|
|
+ psql -h wisecloud.cas -p 5432 "dbname=postgres user=${POSTGRES_USER} password=${POSTGRES_PASSWORD}" -c "CREATE DATABASE ${POSTGRES_DB}";
|
|
|
+ [ $? -eq 0 ] && echo "create db ${POSTGRES_DB} success" || echo "warning: create db ${POSTGRES_DB} failed, mybe the db already exist"
|
|
|
+
|
|
|
+ echo "Begin to import sql file.."
|
|
|
+ sleep 5
|
|
|
+ psql -h wisecloud.cas -p 5432 "dbname=${POSTGRES_DB} user=${POSTGRES_USER} password=${POSTGRES_PASSWORD}" -f ${SQL_FILE}
|
|
|
+ [ $? -eq 0 ] && echo "import ${SQL_FILE} success" || { echo "import ${SQL_FILE} failed"; exit 1 ; }
|
|
|
+
|
|
|
+ rm -rf ${SQL_FILE}
|
|
|
+
|
|
|
+ fi
|
|
|
+
|
|
|
+fi
|
|
|
+
|
|
|
+# start
|
|
|
+cd ${MODULE_HOME}/software
|
|
|
+./CAS --port=8822
|
|
|
+[ $? -eq 0 ] && echo "Start success" || echo "Start failed"
|