1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

BES中间件自动化新增数据源

介绍

作为本际云服务器推荐网的小编,我们在推进国产化中间件BES时发现,使用控制台修改配置信息的场景很多,但是使用控制台修改配置非常有局限性,所以我们介绍了如何使用命令行的方式批量新增数据源,但是在逐渐进入自动化运维的时代中,也存在些许弊端,因此我们在AMP平台落地,实现自动化新增BES的数据源。

BES中间件自动化新增数据源

参数介绍

该编排引用的脚本需要如下参数:
–driverclassname:数据库驱动类名(BES中间件会通过解析数据库驱动识别使用的数据库);
–resourcetype:java.sql.Driver(资源类型有如下几种);
–servername:数据库IP;
–databaseport:数据库端口;
–databasename:数据库实例名;
–url:url串;
–username:数据库账号;
–databasepassword:数据库密码;
–name:数据源名称;
–maxpoolsize:数据源连接最大值;
–initialpoolsize:数据源连接初始值;
–minidle:数据源连接最小值;
–INSTANCE_PORT:中间件的实例端口;
最后还需指定执行用户,并选择需要执行的主机资源即可。

实现结果

执行此编排,脚本会解析中间件实例端口,在执行此操作用户的对应单个或多个实例下,进行新增BES中间件的数据源。url、数据源最大值、最小值、初始值、实例名等都会解析上面提供的参数当做入参进行新增;并且数据源默认的探测语句为:”SELECT 1 FROM DUAL”;且会新增两个$属性:$session.terminal=IP和$session.program=实例名#数据源名称。在BES控制台中的结果如下图所示:

BES中间件自动化新增数据源

实现脚本

以下为实现自动化新增BES数据源的脚本:

#!/bin/bash
HOST_IP=`ifconfig|grep “inet” |awk -F”:” ‘+{print $3}’|head -n1`
USER_NAME=`whoami`
DB_DRIVERCLASS=${DB_DRIVERCLASS}
DB_RESOURCETYPE=${DB_RESOURCETYPE}
DB_ADDRESS=${DB_ADDRESS}
DB_DATABASEPORT=${DB_DATABASEPORT}
DB_SERVERNAME=${DB_SERVERNAME}
DB_URL=${DB_URL}
DB_USERNAME=${DB_USERNAME}
DB_PASSWORD=${DB_PASSWORD}
JDBC_NAME=${JDBC_NAME}
JDBC_MAXPOOLSIZE=${JDBC_MAXPOOLSIZE}
JDBC_INITIALPOOLSIZE=${JDBC_INITIALPOOLSIZE}
JDBC_MINIDLE=${JDBC_MINIDLE}
INSTANCE_PORT_LIST=${INSTANCE_PORT_LIST}
INSTANCE_PORT_ARRY=(${INSTANCE_PORT_LIST//,/})
for INSTANCE_PORT in ${INSTANCE_PORT_ARRY[@]}
do
    INSTANCE_NUM=${INSTANCE_PORT:0-2}
    INSTANCE_NAME=”${USER_NAME}_instance${INSTANCE_NUM}”
    INSTANCE_HOME=”/${USER_NAME}/bes952/${INSTANCE_NAME}”
    PASSWORD_FILE=”${INSTANCE_HOME}/bin/passwordfile”
    if [ -f ${PASSWORD_FILE} ]
    then
        cd ${INSTANCE_HOME}/bin
        ./iastool –useradmin –passwordfile ${PASSWORD_FILE} –port ${INSTANCE_PORT} create –jdbc-resource –driverclassname ${DB_DRIVERCLASS} –resourcetype ${DB_RESOURCETYPE} –servername ${DB_ADDRESS} –databaseport ${DB_DATABASEPORT} –databasename ${DB_SERVERNAME} –url ${DB_URL} –username ${DB_USERNAME} –databasepassword ${DB_PASSWORD} –maxpoolsize ${JDBC_MAXPOOLSIZE} –initialpoolsize ${JDBC_INITIALPOOLSIZE} –minidle ${JDBC_MINIDLE} –validationquery “SELECT 1 FROM DUAL” –properties “v$session.terminal=${HOST_IP}:v$session.program=${INSTANCE_NAME}#${JDBC_NAME}” ${JDBC_NAME}
        if [ $? -ne 0]
        then
            echo “————–${INSTANCE_NAME} , ${JDBC_NAME} 新增失败,请核查——————-“
        else
            echo “————–${INSTANCE_NAME} , ${JDBC_NAME} 新增成功——————-“
        fi
    else
        echo “————–${PASSWORD_FILE} 文件不存在,请核查—————-“
    fi
    sleep 5
done
END

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6337.html