提交 b70922af authored 作者: 陈泽健's avatar 陈泽健

fix(deploy): 修复部署脚本中的路径、端口和数据库配置问题

- 修正前端预定和统一平台的服务路径名称拼写错误
- 在防火墙开放端口中添加8996端口
- 添加多个数据库表结构变更和字段扩展支持
- 修正Java容器启动时的存储路径映射
- 优化环境变量加载确保配置生效
- 更新NTP配置路径到标准位置
- 重构Nginx部署函数中的权限设置逻辑
- 移除自签名证书自动生成功能
- 添加nginx.conf配置文件复制到容器
- 更新IP替换脚本中的默认IP地址配置
上级 666bc596
......@@ -358,8 +358,8 @@ function File_detection_java() {
"前端-AI助手:/data/services/web/pc/pc-vue2-ai"
"前端-统一后台:/data/services/web/pc/pc-vue2-backstage"
"前端-编辑器:/data/services/web/pc/pc-vue2-editor"
"前端-预定:/data/services/web/pc/pc-vue2-meetngV2"
"前端-统一平台:/data/services/web/pc/pc-vue2-meetngV3"
"前端-预定:/data/services/web/pc/pc-vue2-meetingV2"
"前端-统一平台:/data/services/web/pc/pc-vue2-meetingV3"
"前端-门户:/data/services/web/pc/pc-vue2-platform"
"前端-运维集控:/data/services/web/pc/pc-vue2-moniter"
"前端-语音转录:/data/services/web/pc/pc-vue2-voice"
......@@ -466,7 +466,7 @@ function firewalldjava() {
log "INFO" "=================================================================="
# 定义 TCP 和 UDP 需要开放的端口
local tcp_ports=(22 443 8848 9848 1883 8883)
local tcp_ports=(22 443 8848 9848 1883 8883 8996)
local udp_ports=(123 323)
# 检查 firewalld 是否正在运行
......@@ -820,6 +820,55 @@ function mysql_x86() {
"GRANT ALL PRIVILEGES ON nacos_mysql.* TO 'nacos'@'%';"
"GRANT ALL PRIVILEGES ON devops.* TO 'mysqluser'@'%';"
"FLUSH PRIVILEGES;"
"ALTER TABLE devops.cmdb_roomdevice ADD COLUMN ICON_H5 VARCHAR(64) NULL;"
"ALTER TABLE devops.cmdb_company ADD COLUMN SMART_HOME INT NULL DEFAULT 0;"
"ALTER TABLE devops.cmdb_roomdevice ADD COLUMN IS_H5 INT NULL DEFAULT 0;"
"ALTER TABLE devops.cmdb_roomdevice ADD COLUMN MAC_ADDR VARCHAR(64) NULL;"
"ALTER TABLE devops.cmdb_roomdevice ADD COLUMN VERSION VARCHAR(64) NULL;"
"ALTER TABLE devops.cmdb_roomganged ADD COLUMN COMPANY_ID INT NULL;"
"ALTER TABLE devops.cmdb_company ADD COLUMN REMOTE_START INT NULL DEFAULT 0;"
"ALTER TABLE devops.cmdb_company ADD COLUMN REMOTE_END INT NULL DEFAULT 0;"
"ALTER TABLE devops.cmdb_companyauthentication ADD COLUMN APPLYDESCRIBE VARCHAR(256) NULL;"
"ALTER TABLE devops.cmdb_companyauthentication ADD COLUMN APPLYFEEDBACK VARCHAR(256) NULL;"
"FLUSH PRIVILEGES;"
"CREATE TABLE devops.cmdb_inspection (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
master_id INT DEFAULT NULL,
name VARCHAR(128) DEFAULT NULL,
status INT DEFAULT '0',
createTime DATETIME(6) DEFAULT NULL,
updateTime DATETIME(6) DEFAULT NULL,
createUser_id INT DEFAULT NULL,
runWay INT DEFAULT '0',
runType INT DEFAULT '0',
runDate VARCHAR(128) DEFAULT NULL,
runStartTime DATETIME(6) DEFAULT NULL,
runEndTime DATETIME(6) DEFAULT NULL,
inspectionTime DATETIME(6) DEFAULT NULL,
isEnable INT DEFAULT '0',
inspectionUser_id INT DEFAULT NULL,
company_id INT DEFAULT NULL,
delflag INT DEFAULT '0',
message_id INT DEFAULT NULL,
INDEX idx_master_id (master_id),
INDEX idx_createUser_id (createUser_id),
INDEX idx_inspectionUser_id (inspectionUser_id),
INDEX idx_company_id (company_id),
INDEX idx_message_id (message_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"
"ALTER TABLE ubains.rms_manage_company ADD COLUMN cnum_approvals_num INT NULL;"
"ALTER TABLE ubains.rms_manage_company ADD COLUMN company_process_id BIGINT NULL;"
"ALTER TABLE ubains.rms_manage_conference ADD COLUMN is_send_project_app INT NULL DEFAULT 0;"
"ALTER TABLE ubains.rms_manage_conference ADD COLUMN room_number VARCHAR(50) NULL;"
"ALTER TABLE ubains.rms_timing_task ADD COLUMN is_send_project_app INT NULL DEFAULT 0;"
"ALTER TABLE ubains.rms_manage_conference ADD COLUMN cloudlink_room_id VARCHAR(50) NULL;"
"ALTER TABLE ubains.rms_manage_conference ADD COLUMN polycom_room_id VARCHAR(50) NULL;"
"ALTER TABLE ubains.rms_meeting_approval ADD COLUMN project_app_note INT NULL DEFAULT 0;"
"ALTER TABLE ubains.rms_manage_conference ADD COLUMN conference_class VARCHAR(50) NULL;"
"ALTER TABLE ubains.rms_meeting_message ADD COLUMN cascade_meeting INT NULL;"
"ALTER TABLE ubains.rms_meeting_message ADD COLUMN cloudchairman_pw VARCHAR(255) NULL;"
"ALTER TABLE ubains.rms_meeting_message ADD COLUMN cloud_portal_multi_channel_id VARCHAR(50) NULL;"
"ALTER TABLE ubains.rms_meeting_message ADD COLUMN cloud_multi_channel_guest_pw VARCHAR(20) NULL;"
)
# 执行前半部分 SQL
......@@ -1207,7 +1256,7 @@ function java_x86()
# ------------------- 启动 Java 容器 -------------------
log "INFO" "🚀 正在启动 Java 容器: $container_name ..."
$sudoset docker run -itd --privileged -v /data/services/api:/var/www/java/api -v /data/services/web:/var/www/java/web -v /data/middleware/nginx/nginx_log:/usr/local/nginx/logs -v /etc/localtime:/etc/localtime:ro -v /var/fdfs/storage/data:/var/fdfs/storage/data -p 8085:8085 -p 8993:8993 -p 8994:8994 -p 8995:8995 -p 8999:8999 -p 8719:8719 -p 8720:8720 -p 9204:9204 -p 9200:9200 -p 9201:9201 -p 9905:9905 -p 9911:9911 -p 9908:9908 -p 9906:9906 -p 9907:9907 -p 9909:9909 -p 9910:9910 -p 30880:30880 -p 30881:30881 -p 30882:30882 -p 30883:30883 -p 30884:30884 --restart=always --mac-address="02:42:ac:11:00:02" --name ujava2 $image_name /var/www/java/api/start.sh
$sudoset docker run -itd --privileged -v /data/services/api:/var/www/java/api -v /data/services/web:/var/www/java/web -v /data/middleware/nginx/nginx_log:/usr/local/nginx/logs -v /etc/localtime:/etc/localtime:ro -v /data/storage/storage/data:/var/fdfs/storage/data -p 8085:8085 -p 8993:8993 -p 8994:8994 -p 8995:8995 -p 8999:8999 -p 8719:8719 -p 8720:8720 -p 9204:9204 -p 9200:9200 -p 9201:9201 -p 9905:9905 -p 9911:9911 -p 9908:9908 -p 9906:9906 -p 9907:9907 -p 9909:9909 -p 9910:9910 -p 30880:30880 -p 30881:30881 -p 30882:30882 -p 30883:30883 -p 30884:30884 --restart=always --mac-address="02:42:ac:11:00:02" --name ujava2 $image_name /var/www/java/api/start.sh
if [ $? -ne 0 ]; then
log "ERROR" "⛔ 容器启动失败"
......@@ -1780,7 +1829,8 @@ EOF
# 8. 立即在当前会话中生效
log "INFO" "🔄 正在重新加载 /etc/profile 使环境变量生效..."
source /etc/profile 2>/dev/null || . /etc/profile 2>/dev/null
source /etc/profile
# 如果source失败,则手动设置环境变量
if [ $? -ne 0 ]; then
log "WARN" "⚠️ source /etc/profile 失败,使用export设置环境变量"
......@@ -1840,6 +1890,7 @@ function start_java_meeting_service() {
# 1. 检查Java环境是否部署成功
log "INFO" "🔍 正在检查Java环境..."
source /etc/profile 2>/dev/null || . /etc/profile 2>/dev/null
source /etc/profile
if ! java -version >/dev/null 2>&1; then
log "ERROR" "❌ Java环境未部署或配置失败"
......@@ -2132,7 +2183,7 @@ function ntp_uos() {
return 0
fi
local config_dir="$auto_java/data/temp/ntp/server_bag/ntp"
local config_dir="/data/temp/ntp"
local backup="/etc/chrony.confbak"
local target="/etc/chrony.conf"
......@@ -2721,6 +2772,126 @@ function getLatestVersion() {
log "INFO" "版本检查完成"
}
#function nginx_x86() {
# # ------------------- 定义变量 -------------------
# local temp_dir="/data/temp"
# local nginx_version="1.29.3"
# local nginx_image="nginx:${nginx_version}"
# local nginx_container_name="unginx"
# local nginx_image_tar="${temp_dir}/nginx-${nginx_version}.tar.gz"
# local required_dirs=(
# "/data/middleware/nginx/log"
# "/data/middleware/nginx/data/cache"
# "/data/middleware/nginx/data/html"
# "/data/middleware/nginx/config"
# "/data/services/web"
# "/data/security/nginx_cert"
# )
#
# log "INFO" "=================================================================="
# log "INFO" "开始部署 Nginx (离线编译安装) - x86"
# log "INFO" "=================================================================="
#
# # 目录预检查,缺失则创建
# for dir in "${required_dirs[@]}"; do
# if [ ! -d "$dir" ]; then
# log "WARN" "目录 $dir 不存在,自动创建"
# mkdir -p "$dir" || {
# log "ERROR" "目录 $dir 创建失败"
# return 1
# }
# fi
# done
#
# #创建nginx用户
# groupadd -r nginx
# useradd -r -g nginx -s /sbin/nologin -d /var/cache/nginx nginx
# #检查是否创建成功
# id nginx
# # 创建目录
# mkdir -p /data/middleware/nginx/data/{cache,html}
#
# # 统一设置属主为 nginx(假设 Nginx 运行用户为 nginx)
# chown -R nginx:nginx /data/middleware/nginx
#
# # 设置权限
# chmod -R 755 /data/middleware/nginx/data/html # 静态文件可读
# chmod -R 775 /data/middleware/nginx/data/cache # 缓存目录需写入
# chmod -R 755 /data/middleware/nginx/log # 日志目录可读写
#
# # 校验镜像包
# if [ ! -s "$nginx_image_tar" ]; then
# log "ERROR" "离线包 $nginx_image_tar 不存在或为空"
# return 1
# fi
#
# # 加载镜像文件
# if ! docker load -i "$nginx_image_tar"; then
# log "ERROR" "镜像加载失败"
# return 1
# fi
# log "INFO" "镜像加载成功"
#
# # 检查证书文件是否存在,如果不存在则生成自签名证书
# local cert_dir="/data/security/nginx_cert"
# local cert_file="$cert_dir/server.crt"
# local key_file="$cert_dir/server.key"
#
# if [ ! -f "$cert_file" ] || [ ! -f "$key_file" ]; then
# log "WARN" "证书文件不存在,正在生成自签名证书..."
#
# # 进入证书目录
# cd "$cert_dir" || {
# log "ERROR" "无法进入证书目录 $cert_dir"
# return 1
# }
#
# # 生成自签名证书
# if ! openssl req -x509 \
# -newkey rsa:2048 \
# -nodes \
# -keyout server.key \
# -out server.crt \
# -days 36500 \
# -config san.cnf \
# -extensions v3_req; then
# log "ERROR" "证书生成失败"
# fi
#
# log "INFO" "证书生成成功"
# else
# log "INFO" "证书文件已存在,跳过生成"
# fi
#
# # 检查容器是否存在
# if docker ps -a --format '{{.Names}}' | grep -qw "$nginx_container_name"; then
# log "WARN" "容器 $nginx_container_name 已存在,自动退出部署操作!!!"
# return 0
# fi
#
# # 生成容器
# if ! docker run -d \
# --name "$nginx_container_name" \
# --restart=always \
# --mac-address "02:42:ac:11:00:25" \
# -v /etc/localtime:/etc/localtime:ro \
# -p 443:443 \
# -v /data/middleware/nginx/config:/etc/nginx/conf.d \
# -v /data/middleware/nginx/data/html:/usr/share/nginx/html \
# -v /data/middleware/nginx/log:/var/log/nginx \
# -v /data/middleware/nginx/data/cache:/var/cache/nginx \
# -v /data/services/web:/data/services/web:rw \
# -v /data/security/nginx_cert:/data/security/nginx_cert:ro \
# "$nginx_image"; then
# log "ERROR" "容器 $nginx_container_name 启动失败"
# return 1
# fi
#
# log "INFO" "容器 $nginx_container_name 启动成功"
# return 0
#}
function nginx_x86() {
# ------------------- 定义变量 -------------------
local temp_dir="/data/temp"
......@@ -2757,16 +2928,14 @@ function nginx_x86() {
useradd -r -g nginx -s /sbin/nologin -d /var/cache/nginx nginx
#检查是否创建成功
id nginx
# 创建目录
mkdir -p /data/middleware/nginx/data/{cache,html}
#赋予权限
chown -R nginx:nginx /data/middleware/nginx/data/cache
chmod -R 755 /data/middleware/nginx/data/cache
# 统一设置属主为 nginx(假设 Nginx 运行用户为 nginx)
chown -R nginx:nginx /data/middleware/nginx
# 设置权限
chmod -R 755 /data/middleware/nginx/data/html # 静态文件可读
chmod -R 775 /data/middleware/nginx/data/cache # 缓存目录需写入
chmod -R 755 /data/middleware/nginx/log # 日志目录可读写
# 赋予权限
chown -R 1000:1000 /data/middleware/nginx/log
chown -R 1000:1000 /data/middleware/nginx/data/cache
chmod -R 700 /data/middleware/nginx/data/cache
# 校验镜像包
if [ ! -s "$nginx_image_tar" ]; then
......@@ -2781,38 +2950,6 @@ function nginx_x86() {
fi
log "INFO" "镜像加载成功"
# 检查证书文件是否存在,如果不存在则生成自签名证书
local cert_dir="/data/security/nginx_cert"
local cert_file="$cert_dir/server.crt"
local key_file="$cert_dir/server.key"
if [ ! -f "$cert_file" ] || [ ! -f "$key_file" ]; then
log "WARN" "证书文件不存在,正在生成自签名证书..."
# 进入证书目录
cd "$cert_dir" || {
log "ERROR" "无法进入证书目录 $cert_dir"
return 1
}
# 生成自签名证书
if ! openssl req -x509 \
-newkey rsa:2048 \
-nodes \
-keyout server.key \
-out server.crt \
-days 36500 \
-config san.cnf \
-extensions v3_req; then
log "ERROR" "证书生成失败"
return 1
fi
log "INFO" "证书生成成功"
else
log "INFO" "证书文件已存在,跳过生成"
fi
# 检查容器是否存在
if docker ps -a --format '{{.Names}}' | grep -qw "$nginx_container_name"; then
log "WARN" "容器 $nginx_container_name 已存在,自动退出部署操作!!!"
......@@ -2837,6 +2974,13 @@ function nginx_x86() {
return 1
fi
# 拷贝/data/temp/nginx.conf到容器内/etc/nginx/目录下
docker cp /data/temp/nginx.conf $nginx_container_name:/etc/nginx/
log "INFO 已将nginx.conf复制到容器内/etc/nginx/目录下"
# 重启unginx容器
docker restart $nginx_container_name
log "INFO" "容器 $nginx_container_name 启动成功"
return 0
}
......
......@@ -40,7 +40,7 @@ function log() {
# --- 配置区域 ---
TARGET_DIR="/data"
BACKUP_DIR="/data/temp"
OLD_IP_INPUT="192.168.9.84"
OLD_IP_INPUT="192.168.5.45"
# 检查命令行参数
if [ $# -ge 1 ]; then
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论