资讯专栏INFORMATION COLUMN

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

IT那活儿 / 3391人阅读
BES中间件自动化新增数据源

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

01

在推进国产化中间件bes时,我们发现使用控制台修改jvm堆最大最小值、元空间、HSF端口、数据源等配置信息的场景很多,但是使用控制台修改配置非常有局限性,所以我上篇关于bes中间件的软文,介绍了如何使用命令行的方式批量新增数据源。宝兰德BES中间件(命令行方式)批量新建数据源

但是这种方式在逐渐进入自动化运维的时代中,也存在些许弊端,所以经过实践,我们讲自动化新增bes的数据源这一场景在AMP平台落地,在此分享给大家。 


02


参数介绍

此编排引用的脚本需要如下几个输入参数:

  • --driverclassname 数据库驱动类名(bes中间件会通过解析数据库驱动识别使用的数据库)

  • --resourcetype  java.sql.Driver(资源类型有如下几种):

  • --servername    数据库IP

  • --databaseport  数据库端口

  • --databasename   数据库实例名

  • --url    url串

  • --username  数据库账号

  • --databasepassword 数据库密码

  • --name  数据源名称

  • --maxpoolsize  数据源连接最大值

  • --initialpoolsize  数据源连接初始值

  • --minidle  数据源连接最小值

  • --INSTANCE_PORT  中间件的实例端口

最后参数为执行用户,然后选择需要执行的主机资源即可。

 


03

实现结果

执行此编排,脚本会解析中间件实例端口,在执行此操作用户的对应单个或多个实例下,进行新增bes中间件的数据源,url,数据源最大值,最小值,初始值,实例名等都会解析上面提供的参数当做入参进行新增;并且数据源默认的探测语句为:"SELECT 1 FROM DUAL";且会新增两个$属性:

  • $session.terminal=IP

  • $session.program=实例名#数据源名称

在bes控制台结果如下图所示:

04

实现脚本

#!/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 --user admin --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



本文作者:孙宇航

本文来源:IT那活儿(上海新炬王翦团队)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129467.html

相关文章

  • Vim session

    摘要:练级攻略的纵向编辑模式第一步修改将数列中第二段所有数字修改为将游标定位第一个行的进入纵向编辑模式移动游标到最后一行,可视块覆盖所要修改的列进入修改模式输入数字第二步前添加在所有行之前添加将游标定位到第一行第一列进入纵向编辑模式 vimtutor showImg(https://segmentfault.com/img/bV4OLS?w=600&h=400); intro vim hi...

    nanfeiyan 评论0 收藏0
  • 十个推荐使用的 Laravel 的辅助函数

    摘要:函数允许你将多维数组转换为使用点符号的一维数组。返回应用程序中公共目录的完全限定的绝对路径。要解决此问题,只需运行以下命令即可使用包将字符串转换为复数形式。接受两个参数一个值和一个闭包。该值将被传递给闭包,然后该值将被返回。 array_dot() 函数允许你将多维数组转换为使用点符号的一维数组。 $array = [ user => [username => somethin...

    琛h。 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<