配置weblogic dndi

来源:互联网 发布:大数据平台基础设施 编辑:程序博客网 时间:2024/06/02 01:08
#!/bin/bashDATABASE_TYPE_MYSQL="MYSQL"DATABASE_TYPE_POSTGRESQL="POSTGRESQL"DATABASE_TYPE_ORACLE="ORACLE"DATABASE_TYPE_DAMENG="DAMENG"DATABASE_PORT_MYSQL=3306DATABASE_PORT_POSTGRESQL=5432DATABASE_PORT_ORACLE=1521DATABASE_PORT_DAMENG=12345DATABASE_DRIVER_NAME_MYSQL="com.mysql.jdbc.Driver"DATABASE_DRIVER_NAME_MYSQL_CLUSTER="com.mysql.jdbc.ReplicationDriver"DATABASE_DRIVER_NAME_POSTGRESQL="org.postgresql.Driver"DATABASE_DRIVER_NAME_ORACLE="oracle.jdbc.OracleDriver"DATABASE_DRIVER_NAME_DAMENG="dm.jdbc.driver.DmDriver"JDBC_DATASOURCE_NAME="sgccjndi-"$(date +"%Y")$(date +"%m")$(date +"%d")$(date +"%H")$(date +"%M")$(date +"%S")JNDI_NAME="sgccjndi"MINCAPACITY_DEFALT=10MAXCAPACITY_DEFALT=50INITIALCAPACITY_DEFALT=10MINCAPACITY=MAXCAPACITY=INITIALCAPACITY=DATABASE_ENCRYPTED_PSWD=DATABASE_DRIVER_NAME=JDBC_DRIVER_URL=DATABASE_CLUSTER_FLAG=DATABASE_PORT=DATABASE__PROXY_PORT=DATABASE_TYPE=`cat /var/config/PRIVATE__DATABASE_TYPE`DATABASE_NAME=`cat /var/config/PRIVATE__DATABASE_NAME`HOST_IP=`cat /var/config/PRIVATE__DATABASE_HOST`DATABASE_USER=`cat /var/config/PRIVATE__DATABASE_USER`DATABASE_PSWD=`cat /var/config/PRIVATE__DATABASE_PSWD` WLST_BIN="/home/weblogic/addtional_data"WLST_SCRIPT="./wlst.sh encryptpswd.py"init(){    if [ "$DATABASE_TYPE" = "" ]    then        echo "init failed : unknow database type" >> /root/weblogic_jndi.log        exit 0    fi         if [ "$HOST_IP" = "" ]    then        echo "init failed : HOST_IP is null" >> /root/weblogic_jndi.log        exit 0    fi         if [ "$DATABASE_NAME" = "" ]    then        echo "init failed : DATABASE_NAME is null" >> /root/weblogic_jndi.log        exit 0    fi         if [ "$DATABASE_USER" = "" ]    then        echo "init failed : DATABASE_USER is null" >> /root/weblogic_jndi.log        exit 0    fi         if [ "$DATABASE_PSWD" = "" ]    then        echo "init failed : DATABASE_PSWD is null" >> /root/weblogic_jndi.log        exit 0    fi         if [ "$MINCAPACITY" = "" ]    then        MINCAPACITY=$MINCAPACITY_DEFALT    fi         if [ "$MAXCAPACITY" = "" ]    then        MAXCAPACITY=$MAXCAPACITY_DEFALT    fi         if [ "$INITIALCAPACITY" = "" ]    then       INITIALCAPACITY=$INITIALCAPACITY_DEFALT    fi    #"is the database is cluster or not"    if [[ $HOST_IP =~ "," ]]    then         DATABASE_CLUSTER_FLAG="Y"    else      DATABASE_CLUSTER_FLAG="N"    fi}getEncryptPSWD(){  cd $WLST_BIN  ENCRPT_COMMAND=$WLST_SCRIPT" "$DATABASE_PSWD" > tempass.txt"  eval $ENCRPT_COMMAND  passstr=`cat tempass.txt|grep {AES}`  if [ "$passstr" = "" ]   then      echo "encrypt the password error"      exit 1  else      DATABASE_ENCRYPTED_PSWD=`echo ${passstr#*password}`  fi  echo $DATABASE_ENCRYPTED_PSWD  DATABASE_ENCRYPTED_PSWD=$(echo $DATABASE_ENCRYPTED_PSWD|sed 's/\//\\\//g')  echo $DATABASE_ENCRYPTED_PSWD  return 0;}assembleParas(){    if [ "$DATABASE_TYPE" = "$DATABASE_TYPE_MYSQL" ]    then        echo $DATABASE_TYPE_MYSQL        DATABASE_PORT=`cat /var/config/PRIVATE__DATABASE_PORT`        if [ "$DATABASE_PORT" = "" ]        then            DATABASE_PORT=$DATABASE_PORT_MYSQL        fi                 if [ "$DATABASE_CLUSTER_FLAG" = "Y" ]        then            JDBC_DRIVER_URL="jdbc:mysql:replication:\\/\\/"$HOST_IP":"$DATABASE_PORT"\\/"$DATABASE_NAME            DATABASE_DRIVER_NAME=$DATABASE_DRIVER_NAME_MYSQL_CLUSTER        else            JDBC_DRIVER_URL="jdbc:mysql:\\/\\/"$HOST_IP":"$DATABASE_PORT"\\/"$DATABASE_NAME            DATABASE_DRIVER_NAME=$DATABASE_DRIVER_NAME_MYSQL        fi                echo $JDBC_DRIVER_URL        echo $DATABASE_ENCRYPTED_PSWD        echo $JNDI_NAME    elif [ "$DATABASE_TYPE" = "$DATABASE_TYPE_POSTGRESQL" ]    then        echo $DATABASE_TYPE_POSTGRESQL        DATABASE__PROXY_PORT=`cat /var/config/DATABASE__PROXY_PORT`        if [ "$DATABASE__PROXY_PORT" = "" ]        then            DATABASE_PORT=$DATABASE_PORT_POSTGRESQL        else            DATABASE_PORT=$DATABASE_PORT_POSTGRESQL        fi                 if [ "$DATABASE_CLUSTER_FLAG" = "Y" ]        then            HOST_IP=`echo ${HOST_IP%%,*}`        fi                 if [ "$HOST_IP" = "" ]        then            echo "POSTGRES HOST_IP IS NULL"            exit 0        fi        JDBC_DRIVER_URL="jdbc:postgresql:\\/\\/"$HOST_IP":"$DATABASE_PORT"\\/"$DATABASE_NAME        DATABASE_DRIVER_NAME=$DATABASE_DRIVER_NAME_POSTGRESQL    elif [ "$DATABASE_TYPE" = "$DATABASE_TYPE_ORACLE" ]    then        echo $DATABASE_TYPE_ORACLE        DATABASE_PORT=`cat /var/config/PRIVATE__DATABASE_PORT`        if [ "$DATABASE_PORT" = "" ]        then            DATABASE_PORT=$DATABASE_PORT_ORACLE        fi            JDBC_DRIVER_URL="jdbc:oracle:thin:@"$HOST_IP":"$DATABASE_PORT"\\/"$DATABASE_NAME            DATABASE_DRIVER_NAME=$DATABASE_DRIVER_NAME_ORACLE    elif [ "$DATABASE_TYPE" = "$DATABASE_TYPE_DAMENG" ]    then        echo $DATABASE_TYPE_DAMENG        DATABASE_PORT=`cat /var/config/PRIVATE__DATABASE_PORT`        if [ "$DATABASE_PORT" = "" ]        then            DATABASE_PORT=$DATABASE_PORT_DAMENG        fi            JDBC_DRIVER_URL="jdbc:dm:\\/\\/"$HOST_IP":"$DATABASE_PORT"\\/"$DATABASE_NAME            DATABASE_DRIVER_NAME=$DATABASE_DRIVER_NAME_DAMENG         echo $JDBC_DRIVER_URL        echo $DATABASE_ENCRYPTED_PSWD        echo $JNDI_NAME    else        echo "unknow database type"        exit 1    fi}createJNDI(){  #if the jndi name exists  jdbcFileINConfigExistFlag="N"  jdbcFileName=  cd /home/weblogic/oracle/Middleware/user_projects/domains/base_domain/config/jdbc  sgccjndiline=`grep  "<jndi-name>sgccjndi</jndi-name>" * `  if [ "$sgccjndiline" != "" ]  then       #sgccjndiline ORACLE-20150925123251-jdbc.xml: <jndi-name>sgccjndi</jndi-name>      jdbcFileName=${sgccjndiline%%:*}      #if exist first remove it       rm -rf $jdbcFileName      cd ..      configsccjndiline=`cat config.xml|grep ${sgccjndiline%%:*}`      if [ "$configsccjndiline" != "" ]      then          jdbcFileINConfigExistFlag="Y"      fi  fi  jndifilename=$DATABASE_TYPE"-"$(date +"%Y")$(date +"%m")$(date +"%d")$(date +"%H")$(date +"%M")$(date +"%S")"-jdbc.xml"  configbakfilename="config.xml"$(date +"%Y")$(date +"%m")$(date +"%d")$(date +"%H")$(date +"%M")$(date +"%S")".bak"     cd /home/weblogic/addtional_data/temp  cp ../jnditemplate.xml $jndifilename  sed -i "s/JDBC_DATASOURCE_NAME/$JDBC_DATASOURCE_NAME/g" $jndifilename  sed -i "s/JDBC_DRIVER_URL/$JDBC_DRIVER_URL/g" $jndifilename  sed -i "s/DATABASE_DRIVER_NAME/$DATABASE_DRIVER_NAME/g" $jndifilename  sed -i "s/DATABASE_USER/$DATABASE_USER/g" $jndifilename  echo $DATABASE_ENCRYPTED_PSWD  sed -i "s/DATABASE_ENCRYPTED_PSWD/$DATABASE_ENCRYPTED_PSWD/g" $jndifilename  sed -i "s/JNDI_NAME/$JNDI_NAME/g" $jndifilename $jndifilename  sed -i "s/INITIALCAPACITY/$INITIALCAPACITY/g" $jndifilename  sed -i "s/MAXCAPACITY/$MAXCAPACITY/g" $jndifilename  sed -i "s/MINCAPACITY/$MINCAPACITY/g" $jndifilename  if [ "$DATABASE_TYPE" = "$DATABASE_TYPE_ORACLE" ]  then      sed -i "s/SQL SELECT 1/SQL SELECT 1 FROM DUAL/g" $jndifilename  fi  mv $jndifilename /home/weblogic/oracle/Middleware/user_projects/domains/base_domain/config/jdbc/      cp /home/weblogic/oracle/Middleware/user_projects/domains/base_domain/config/config.xml $configbakfilename  cp -rf /home/weblogic/oracle/Middleware/user_projects/domains/base_domain/config/config.xml .     echo $jdbcFileINConfigExistFlag  echo $jdbcFileName  echo $jndifilename  if [ "$jdbcFileINConfigExistFlag" = "Y" ]  then      sed -i "s/$jdbcFileName/$jndifilename/g" config.xml  else      sed -i '/<admin-server-name>/ r ../jndiinconfigfiletemplate.xml' config.xml      sed -i "s/JDBC_DATASOURCE_NAME/$JDBC_DATASOURCE_NAME/g" config.xml      sed -i "s/JNDI-FILE-NAME/$jndifilename/g" config.xml  fi  yes|cp -rf config.xml /home/weblogic/oracle/Middleware/user_projects/domains/base_domain/config/  yes|rm -rf config.xml  echo "createjndi"}main(){echo "开始..$(date)" >> /root/weblogic_jndi.loginitecho "1..$(date)...init 完成..." >> /root/weblogic_jndi.loggetEncryptPSWDecho "2..$(date)...getEncryptPSWD 完成...$(date)" >> /root/weblogic_jndi.logassembleParasecho "3..$(date)...assembleParas 完成...$(date)" >> /root/weblogic_jndi.logcreateJNDIecho "4..$(date)...createJNDI 完成...$(date)" >> /root/weblogic_jndi.logservice weblogic stopecho "5..$(date)...service weblogic stop 完成...$(date)" >> /root/weblogic_jndi.logservice weblogic startecho "6..$(date)...service weblogic start 完成...$(date)" >> /root/weblogic_jndi.log}main
0 0
原创粉丝点击