123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- #!/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"
|