DataKit(openGauss管理工具)自动化安装脚本

说明

本脚本为openGauss管理工具DataKit的自动化安装脚本,使用脚本前,请先前往Gitee中DataKit的代码仓https://gitee.com/opengauss/openGauss-workbench详细阅读官方安装教程后,再尝试使用此脚本。

脚本使用

使用前请详细阅读脚本头部说明部分,复制脚本内容到自定义的xxx.sh文件中,修改自定义变量部分,保存退出。使用sh ./xxx.sh命令即可成功执行脚本,完成DataKit自动下载安装。

脚本内容

#!/bin/bash

# ####################################
# 说明:
# 1-此脚本为datakit服务自动化安装脚本,支持6.0.0版本。
# 2-使用此脚本只需修改“自定义变量”中内容即可,执行脚本会自动下载datakit安装包并完成安装。
# 3-当配置的openGauss数据库为datakit服务已使用过的历史数据库时,脚本运行最后会提示“初始密码访问服务失败。”,此提示不代表服务未正常运行,且不影响服务的正常运行。
# 4-实际服务运行状态可根据脚本执行日志信息中的PID,或查询datakit安装目录下datakit服务的日志信息查询。
# 5-一旦脚本执行至“启动服务”步骤时,不论后续报出任何错误,datakit的安装步骤均已完成,只需到安装目录下正常管理服务即可。
# ####################################

# ####################################
# 自定义变量
# ####################################

# datakit版本
version="6.0.0"

# 安装包保存路径(需为已有空目录,下同)
package_path="/{DATAKIT_PATH}/pkg"

# 服务安装路径
install_path="/{DATAKIT_PATH}/server"

# 端口(请确保配置的端口未被占用,否则会导致启动服务失败)
port="9494"

# openGauss连接信息(openGauss请完成前置配置,参考https://gitee.com/opengauss/openGauss-workbench)
# 示例:openGauss_ip=ip:port/database
openGauss_ip="127.0.0.1:5432/db_datakit"
openGauss_username="opengauss_test"
openGauss_password="Sample@123"

# ####################################
# 因变量
# #####################################

# 安装包名
package_name="Datakit-${version}.tar.gz"

# jar包名
jar_name="openGauss-datakit-${version}.jar"

# 下载链接
download_url="https://opengauss.obs.cn-south-1.myhuaweicloud.com/latest/tools/Datakit/${package_name}"

# ####################################
# 安装步骤
# ####################################

# 下载安装包
echo "开始下载安装包"
wget -P "${package_path}" "${download_url}"

# 检查下载是否成功
if [ $? -eq 0 ]; then
    echo "下载成功!"
else
    echo "下载失败,请检查下载链接或网络连接。"
    exit 1
fi

# 解压安装包
echo "解压安装包"
tar -zxvf "${package_path}/${package_name}" -C "${install_path}"

# 检查解压是否成功
if [ $? -eq 0 ]; then
    echo "解压成功!"
else
    echo "解压失败!"
    exit 1
fi

# 查看解压目录
echo "查看目录结构"
cd ${install_path} && ls -l

# 创建新目录
echo "创建新目录"
mkdir config files ssl logs

# 更改配置文件
# 端口占用情况,在普通用户下无法查询
echo "更改配置文件"
mv application-temp.yml config

old_path="/ops"
file_path="${install_path}/config/application-temp.yml"
old_port="9494"

openGauss_old_ip="ip:port/database"
openGauss_old_username="dbuser"
openGauss_old_password="dbpassword"

if [ -f "${file_path}" ]; then
    # 使用sed命令替换文件中的内容
    sed -i "s#${old_path}#${install_path}#g;
            s#${old_port}#${port}#g;
            s#${openGauss_old_ip}#${openGauss_ip}#g;
            s#${openGauss_old_username}#${openGauss_username}#g;
            s#${openGauss_old_password}#${openGauss_password}#g" "${file_path}"
    echo "文件中的内容已经被修改。"
else
    echo "文件不存在或路径错误。"
fi

# 生成密钥信息
echo "生成密钥信息"
keytool -genkey -noprompt -dname "CN=opengauss, OU=opengauss, O=opengauss, L=Beijing, S=Beijing, C=CN" -alias opengauss -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore ${install_path}/ssl/keystore.p12 -validity 3650 -storepass 123456

# 启动服务
echo "启动服务"
if [ ${version} \< "6.0.0" ]; then
    nohup java -Xms2048m -Xmx4096m -jar ${jar_name} --spring.profiles.active=temp > logs/visualtool-main.out 2>&1 &
    PID=$!
    echo "Datakit is already running with PID: $PID"
else
    sh ./run.sh start
    
    # 查看服务状态
    echo "查看服务状态"
    sh ./run.sh status
fi

echo "请稍作等待……"
sleep 30

# 初始密码访问服务
echo "初始密码访问服务"
result=`curl -X POST -H "Content-Type: application/json" --insecure -d '{"username":"admin", "password":"t4/zcUwMZCyriA5oGJ8wQHBiYrAJIbf5krA83wiid44ChSHLTBhfG6UNRnQNTnNxeVBCQbbHKcTL6XY6kQoPox25g13f7s2vV58k6UYP55GgaTC3wWHtL0U/9H2XqXLRxgqDBsnt9dPtUcBrNd/0LEb7ayPiwWLwVJ3rOqmTW+E="}' "https://localhost:${port}/login"`
echo ${result}

check_str=(
    "success"
    "200"
    "token"
)
for i in "${check_str[@]}"
do
    if [[ $result =~ $i ]]; then
        echo "Find '$i' in request"
        if [ $i == "token" ]; then
            echo "初始密码访问服务成功。"
        fi
    else
        echo "初始密码访问服务失败。"
        exit 1
    fi
done

echo "脚本执行完毕"
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值