first commit

This commit is contained in:
rjb
2025-12-22 17:12:39 +08:00
commit 1e007fa3f7
107 changed files with 15447 additions and 0 deletions

192
reinit_gerrit.sh Normal file
View File

@@ -0,0 +1,192 @@
#!/bin/bash
# Gerrit 重新初始化脚本
# 用于重新创建管理员账号
set -e
# 颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 配置变量
GERRIT_HOME="/home/renjianbo/gerrit_install"
GERRIT_VERSION="3.9.0"
GERRIT_PORT="8080"
GERRIT_SSH_PORT="29418"
SERVER_IP="101.43.95.130"
# JDK 17 路径
JAVA17_HOME="/usr/local/java/jdk-17.0.12+7"
export JAVA_HOME=$JAVA17_HOME
export PATH=$JAVA_HOME/bin:$PATH
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN}Gerrit 重新初始化脚本${NC}"
echo -e "${GREEN}版本: ${GERRIT_VERSION}${NC}"
echo -e "${GREEN}========================================${NC}"
echo ""
# 1. 停止服务
echo -e "${YELLOW}[1/5] 停止 Gerrit 服务...${NC}"
if [ -d "${GERRIT_HOME}/review_site" ]; then
cd ${GERRIT_HOME}/review_site
if [ -f "bin/gerrit.sh" ]; then
bin/gerrit.sh stop 2>/dev/null || true
sleep 2
fi
fi
echo -e "${GREEN}✓ 服务已停止${NC}"
echo ""
# 2. 备份数据
echo -e "${YELLOW}[2/5] 备份现有数据...${NC}"
BACKUP_DIR="${GERRIT_HOME}/backup_before_reinit_$(date +%Y%m%d_%H%M%S)"
mkdir -p ${BACKUP_DIR}
if [ -d "${GERRIT_HOME}/review_site" ]; then
if [ -d "${GERRIT_HOME}/review_site/git" ]; then
cp -r ${GERRIT_HOME}/review_site/git ${BACKUP_DIR}/ 2>/dev/null || true
echo " ✓ 已备份 Git 仓库"
fi
if [ -d "${GERRIT_HOME}/review_site/db" ]; then
cp -r ${GERRIT_HOME}/review_site/db ${BACKUP_DIR}/ 2>/dev/null || true
echo " ✓ 已备份数据库"
fi
if [ -d "${GERRIT_HOME}/review_site/etc" ]; then
cp -r ${GERRIT_HOME}/review_site/etc ${BACKUP_DIR}/ 2>/dev/null || true
echo " ✓ 已备份配置文件"
fi
fi
echo -e "${GREEN}✓ 数据已备份到: ${BACKUP_DIR}${NC}"
echo ""
# 3. 删除旧安装
echo -e "${YELLOW}[3/5] 删除旧安装...${NC}"
if [ -d "${GERRIT_HOME}/review_site" ]; then
rm -rf ${GERRIT_HOME}/review_site
echo -e "${GREEN}✓ 已删除旧的 review_site 目录${NC}"
else
echo -e "${YELLOW}⚠ review_site 目录不存在${NC}"
fi
echo ""
# 4. 重新初始化
echo -e "${YELLOW}[4/5] 重新初始化 Gerrit...${NC}"
cd ${GERRIT_HOME}
if [ ! -f "gerrit-${GERRIT_VERSION}.war" ]; then
echo -e "${RED}错误: 未找到 gerrit-${GERRIT_VERSION}.war${NC}"
exit 1
fi
echo " 正在初始化(这可能需要几分钟)..."
$JAVA_HOME/bin/java -jar gerrit-${GERRIT_VERSION}.war init \
-d review_site \
--batch \
--no-auto-start \
-D gerrit.canonicalWebUrl=http://${SERVER_IP}:${GERRIT_PORT}/ \
--install-plugin=download-commands \
--install-plugin=replication \
--install-plugin=reviewnotes 2>&1 | tail -20
if [ $? -eq 0 ]; then
echo -e "${GREEN}✓ 初始化完成${NC}"
else
echo -e "${YELLOW}⚠ 初始化过程中可能有警告,但可能已成功完成${NC}"
fi
echo ""
# 5. 配置 Gerrit
echo -e "${YELLOW}[5/5] 配置 Gerrit...${NC}"
cd ${GERRIT_HOME}
# 创建配置文件
cat > review_site/etc/gerrit.config << EOCONFIG
[gerrit]
basePath = git
canonicalWebUrl = http://${SERVER_IP}:${GERRIT_PORT}/
serverId = $(uuidgen 2>/dev/null || echo $(date +%s))
[database]
type = h2
database = db/ReviewDB
[auth]
type = DEVELOPMENT_BECOME_ANY_ACCOUNT
gitBasicAuth = true
[sshd]
listenAddress = *:${GERRIT_SSH_PORT}
[httpd]
listenUrl = http://*:${GERRIT_PORT}/
cookieSecure = false
cookieSameSite = LAX
cookiePath = /
[cache]
directory = cache
[index]
type = LUCENE
[receive]
enableSignedPush = false
EOCONFIG
echo -e "${GREEN}✓ 配置完成${NC}"
echo ""
# 6. 配置使用 Java 17 启动
echo -e "${YELLOW}配置启动脚本...${NC}"
cd ${GERRIT_HOME}/review_site
if [ -f "bin/gerrit.sh" ]; then
cp bin/gerrit.sh bin/gerrit.sh.bak
sed -i "2i export JAVA_HOME=${JAVA17_HOME}\nexport PATH=\$JAVA_HOME/bin:\$PATH" bin/gerrit.sh
echo -e "${GREEN}✓ 已更新 gerrit.sh 使用 Java 17${NC}"
fi
echo ""
# 7. 启动服务
echo -e "${YELLOW}启动 Gerrit 服务...${NC}"
cd ${GERRIT_HOME}/review_site
bin/gerrit.sh start
sleep 5
# 检查服务状态
if bin/gerrit.sh status 2>&1 | grep -q "Gerrit running\|Running"; then
echo -e "${GREEN}✓ 服务启动成功${NC}"
else
echo -e "${YELLOW}⚠ 服务可能未完全启动,请检查日志${NC}"
fi
echo ""
# 输出信息
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN}重新初始化完成!${NC}"
echo -e "${GREEN}========================================${NC}"
echo ""
echo -e "${YELLOW}重要提示:${NC}"
echo -e " 1. 第一个登录的用户将自动成为管理员"
echo -e " 2. 请清除浏览器 Cookie 和缓存"
echo -e " 3. 访问: http://${SERVER_IP}:${GERRIT_PORT}"
echo -e " 4. 点击 'Sign In'输入用户名例如admin"
echo -e " 5. 第一个登录的用户将自动成为管理员"
echo ""
echo -e "${YELLOW}访问信息:${NC}"
echo -e " Web 界面: http://${SERVER_IP}:${GERRIT_PORT}"
echo -e " SSH 端口: ${GERRIT_SSH_PORT}"
echo ""
echo -e "${YELLOW}备份位置:${NC}"
echo -e " ${BACKUP_DIR}"
echo ""
echo -e "${YELLOW}常用命令:${NC}"
echo -e " 查看状态: cd ${GERRIT_HOME}/review_site && bin/gerrit.sh status"
echo -e " 查看日志: tail -f ${GERRIT_HOME}/review_site/logs/error_log"
echo -e " 停止服务: cd ${GERRIT_HOME}/review_site && bin/gerrit.sh stop"
echo -e " 重启服务: cd ${GERRIT_HOME}/review_site && bin/gerrit.sh restart"
echo ""
echo -e "${GREEN}========================================${NC}"