start.sh 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. #!/bin/bash
  2. echo "starting program.."
  3. # wait for pg startup
  4. echo "Checking postgres server health.."
  5. wait-for-it.sh postgres.authcenter:5432 -t 0
  6. # wait for lb startup
  7. echo "Checking postgres server health.."
  8. wait-for-it.sh wisecloud.authcenter:5432 -t 0
  9. echo "Checking cas server health.."
  10. wait-for-it.sh server.cas:8822 -t 0
  11. echo "Checking redis server health.."
  12. wait-for-it.sh redis.redis:7000 -t 0
  13. MODULE_HOME=/opt/wisecloud/authcenter/authcenter_server
  14. CONF_FILE=${MODULE_HOME}/etc/authcenter.conf
  15. CAS_FILE=${MODULE_HOME}/etc/casclient.ini
  16. LOG_DB=${MODULE_HOME}/logsuite/logdb.conf
  17. SQL_FILE=${MODULE_HOME}/sql/authcenter.sql
  18. REDIS_PASSWORD=`curl http://rancher-metadata/latest/stacks/redis/services/redis/metadata/REDIS_PASSWORD 2>/dev/null`
  19. if [ -z "${REDIS_PASSWORD}" ]
  20. then
  21. REDIS_PASSWORD="123456"
  22. fi
  23. touch base_encrypt.py
  24. (
  25. cat << EOF
  26. #!/usr/bin/env python
  27. #! -*- coding: utf-8 -*-
  28. import base64
  29. import sys
  30. def base_encrypt(str):
  31. en_str = base64.encodestring(str)
  32. print en_str
  33. return en_str
  34. base_encrypt(sys.argv[1])
  35. EOF
  36. ) > base_encrypt.py
  37. pg_password=`echo $(python base_encrypt.py ${POSTGRES_PASSWORD})`
  38. rm -rf base_encrypt.py
  39. sed -i '/BuildTime/aStartTime=' version
  40. sed -i "s#user.*#user=${POSTGRES_USER}#" ${CONF_FILE}
  41. sed -i "s#pass.*#pass=${pg_password}#" ${CONF_FILE}
  42. sed -i "s#password.*#password:${REDIS_PASSWORD}#" ${CAS_FILE}
  43. sed -i "s#usrid.*#usrid=${POSTGRES_USER}#" ${LOG_DB}
  44. sed -i "s#passwd.*#passwd=${pg_password}#" ${LOG_DB}
  45. # insert sql when there is no dbName=authcenter
  46. if [ -f "${SQL_FILE}" ]
  47. then
  48. sleep 5
  49. record_count=`psql -h wisecloud.authcenter -p 5432 "dbname=${POSTGRES_DB} user=${POSTGRES_USER} password=${POSTGRES_PASSWORD}" \
  50. -tc "SELECT value FROM t_authcenter_conf where id='3';" |egrep -v "\-|value|\+" | xargs 2>/dev/null`
  51. echo "##### record_count=$record_count"
  52. if [ "${record_count}" != "/opt/wisecloud/authcenter/authcenter_server/etc" ]; then
  53. echo "Begin to create db ${POSTGRES_DB}.."
  54. psql -h wisecloud.authcenter -p 5432 "dbname=postgres user=${POSTGRES_USER} password=${POSTGRES_PASSWORD}" -c "CREATE DATABASE ${POSTGRES_DB}";
  55. [ $? -eq 0 ] && echo "create db ${POSTGRES_DB} success" || echo "warning: create db ${POSTGRES_DB} failed, mybe the db already exist"
  56. echo "Begin to import sql file.."
  57. sleep 5
  58. psql -h wisecloud.authcenter -p 5432 "dbname=${POSTGRES_DB} user=${POSTGRES_USER} password=${POSTGRES_PASSWORD}" -f ${SQL_FILE}
  59. [ $? -eq 0 ] && echo "import ${SQL_FILE} success" || { echo "import ${SQL_FILE} failed"; exit 1 ; }
  60. rm -rf ${SQL_FILE}
  61. fi
  62. fi
  63. yes | cp cas_lib/libcas.so.1.1.3 ./libcas.so
  64. yes | cp cas_lib/liblogsuite.so.1.1.6 ./liblogsuite.so
  65. yes | cp cas_lib/libjson.so ./libjson.so
  66. yes | cp cas_lib/libjson.so ./libjson.so
  67. yes | cp cas_lib/libhiredis.so ./libhiredis.so.0.13
  68. yes | cp cas_lib/liblicenseClient.so ./liblicenseClient.so
  69. cd ${MODULE_HOME}
  70. rm -rf /opt/wisecloud/authcenter/run
  71. mkdir -p /opt/wisecloud/authcenter/run
  72. ./authcenter