Dataease安装,配置Jenkins自动部署
一.安装Dataease
安装前准备:1.Ubuntu20.04 LTS国内源安装指定版本Docker
2.docker-compose安装
下载离线安装的安装包,下载地址:https://community.fit2cloud.com/#/download/dataease/v1-18-9
上传到服务器的安装目录,然后解压
tar -zxvf dataease-v1.18.9-offline.tar.gz
然后编辑install.conf文件,内容如下:
# 基础配置
## 安装目录
DE_BASE=/opt
## Service 端口
DE_PORT=8765
## 部署及运行模式,可选值有 local、simple、cluster,分别对应 本地模式、精简模式、集群模式
DE_ENGINE_MODE=local
## docker 网段设置
DE_DOCKER_SUBNET=172.19.0.0/16
## docker 网关 IP
DE_DOCKER_GATEWAY=172.19.0.1
## Apache Doris FE IP (外部 Doris 此参数无效)
DE_DORIS_FE_IP=172.19.0.198
## Apache Doris BE IP (外部 Doris 此参数无效)
DE_DORIS_BE_IP=172.19.0.199
## 登录超时时间,单位min。如果不设置则默认8小时,也就是480
DE_LOGIN_TIMEOUT=480
# 数据库配置
## 是否使用外部数据库
DE_EXTERNAL_MYSQL=false
## 数据库地址
DE_MYSQL_HOST=mysql
## 数据库端口
DE_MYSQL_PORT=13306
## DataEase 数据库库名
DE_MYSQL_DB=dataease
## 数据库用户名
DE_MYSQL_USER=root
## 数据库密码
DE_MYSQL_PASSWORD=Password123@mysql
## 数据库参数
DE_MYSQL_PARAMS="autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false"
# Apache Doris 配置
## 是否使用外部 Apache Doris
DE_EXTERNAL_DORIS=false
## Doris 地址
DE_DORIS_HOST=doris-fe
## Doris 查询连接端口
DE_DORIS_PORT=9030
## Doris http端口
DE_DORIS_HTTPPORT=8030
## Doris 数据库名称
DE_DORIS_DB=dataease
## Doris 用户名
DE_DORIS_USER=root
## Doris 密码
DE_DORIS_PASSWORD=Password123@doris
# Kettle 配置
## 是否使用外部 Kettle - (目前还不支持外部Kettle,除非不需运行Kettle,否则请不要修改此参数)
DE_EXTERNAL_KETTLE=false
## Kettle 服务器地址
DE_CARTE_HOST=kettle
## Kettle 访问端口
DE_CARTE_PORT=18080
## Kettle 用户名
DE_CARTE_USER=cluster
## Kettle 密码
DE_CARTE_PASSWORD=cluster
注意:如果安装模式选择simple、cluster默认不会安装Kettle和Doris,需要自己安装,所以这里安装模式选择local。
修改好install.conf之后,就可以执行install.sh脚本,会自行安装dataease。
然后等待启动结果
然后就可以通过主机IP加8765端口访问dataease。
二,Jenkins配置自动打包部署,并替换二开镜像
1.首先拉取代码到gitea仓库
进入Gitea选择创建仓库
选择Git迁移代码库
Github:https://github.com/dataease/dataease.git
2.Jenins添加Node插件,Maven配置文件
node版本选择15.12
添加新的Maven配置
这两个都要加上相同的配置
配置内容如下:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- 根据自己需要调整本地仓库 -->
<servers>
</servers>
<mirrors>
<!-- 阿里云仓库 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun-maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>uni</id>
<repositories>
<repository>
<id>aliyun-maven</id>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>uni</activeProfile>
</activeProfiles>
</settings>
然后在前端目录新增一个打包配置,把镜像源设置为国产镜像源
在项目根路径新增一个docker-compose文件
3.新增ssh-server
4.配置项目
新建项目
配置gitea仓库和分支
在构建前删除原docker-compose文件
配置nodejs,并且打包前端项目
配置后端打包并且指定打包的Maven配置
打包镜像并替换docker-compose的内容
内容如下:
echo "===============动态参数配置 begin===============>"
APPLICATION_NAME=dataease
username=admin
password=passwd
IMAGE_TAG=1.18.7
TAG=1.18.7-${BUILD_NUMBER}
echo "===============登录Harbor===============>"
echo ${password} | docker login -u ${username} <your ip>:86 --password-stdin
docker build --build-arg IMAGE_TAG=$IMAGE_TAG -f Dockerfile -t $APPLICATION_NAME:$TAG .
echo "current docker images:"
docker images | grep $APPLICATION_NAME
echo "docker tag =====>"
docker tag $APPLICATION_NAME:$TAG <your ip>:86/common/$APPLICATION_NAME:$TAG
echo "docker push =====>"
docker push <your ip>:86/common/$APPLICATION_NAME:$TAG
sed -i "s/imageVersion/${APPLICATION_NAME}:${TAG}/" docker-compose.yml
通过ssh-server,替换服务器上dataease安装路径中的docker-compose文件
然后通过自带的工具执行重启命令,这里写了一个重启的脚本
#!/bin/bash
# 执行重新加载操作
/home/ngtl/dataease-v1.18.9-offline/dectl reload
# 等待一段时间,确保重新加载完成(根据实际情况调整等待时间)
sleep 10
# 检查服务状态并输出相应消息
status=$(/home/ngtl/dataease-v1.18.9-offline/dectl status)
if [[ $status == *"正常运行"* ]]; then
echo "Dataease已重新加载"
else
echo "DataEase服务状态: $status"
fi