first commit
This commit is contained in:
199
完全重新安装Gerrit.sh
Normal file
199
完全重新安装Gerrit.sh
Normal file
@@ -0,0 +1,199 @@
|
||||
#!/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 "${RED}警告:将删除所有现有数据!${NC}"
|
||||
echo -e "${GREEN}========================================${NC}"
|
||||
echo ""
|
||||
|
||||
# 1. 停止服务
|
||||
echo -e "${YELLOW}[1/6] 停止 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
|
||||
echo -e "${GREEN}✓ 服务已停止${NC}"
|
||||
else
|
||||
echo -e "${YELLOW}⚠ gerrit.sh 不存在${NC}"
|
||||
fi
|
||||
else
|
||||
echo -e "${YELLOW}⚠ review_site 目录不存在${NC}"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# 2. 杀死残留进程
|
||||
echo -e "${YELLOW}[2/6] 清理残留进程...${NC}"
|
||||
pkill -f "gerrit.war daemon" 2>/dev/null || true
|
||||
sleep 1
|
||||
echo -e "${GREEN}✓ 进程清理完成${NC}"
|
||||
echo ""
|
||||
|
||||
# 3. 删除旧安装
|
||||
echo -e "${YELLOW}[3/6] 删除旧安装...${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. 检查 Gerrit war 文件
|
||||
echo -e "${YELLOW}[4/6] 检查 Gerrit 安装包...${NC}"
|
||||
cd ${GERRIT_HOME}
|
||||
|
||||
if [ ! -f "gerrit-${GERRIT_VERSION}.war" ]; then
|
||||
echo " 下载 Gerrit ${GERRIT_VERSION}..."
|
||||
wget -q https://gerrit-releases.storage.googleapis.com/gerrit-${GERRIT_VERSION}.war
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "${RED}下载失败${NC}"
|
||||
exit 1
|
||||
fi
|
||||
echo -e "${GREEN}✓ 下载完成${NC}"
|
||||
else
|
||||
echo -e "${GREEN}✓ Gerrit ${GERRIT_VERSION} 已存在${NC}"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# 5. 重新初始化
|
||||
echo -e "${YELLOW}[5/6] 重新初始化 Gerrit...${NC}"
|
||||
cd ${GERRIT_HOME}
|
||||
|
||||
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 ""
|
||||
|
||||
# 6. 配置 Gerrit
|
||||
echo -e "${YELLOW}[6/6] 配置 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 ""
|
||||
|
||||
# 7. 配置启动脚本使用 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 ""
|
||||
|
||||
# 8. 启动服务
|
||||
echo -e "${YELLOW}启动 Gerrit 服务...${NC}"
|
||||
cd ${GERRIT_HOME}/review_site
|
||||
|
||||
bin/gerrit.sh start
|
||||
|
||||
sleep 8
|
||||
|
||||
# 检查服务状态
|
||||
if bin/gerrit.sh status 2>&1 | grep -q "Gerrit running\|Running"; then
|
||||
echo -e "${GREEN}✓ 服务启动成功${NC}"
|
||||
else
|
||||
echo -e "${YELLOW}⚠ 检查服务状态...${NC}"
|
||||
bin/gerrit.sh status 2>&1 | head -10
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# 检查端口
|
||||
echo -e "${YELLOW}检查端口监听...${NC}"
|
||||
if command -v netstat &> /dev/null; then
|
||||
netstat -tlnp 2>/dev/null | grep ":8080" && echo -e "${GREEN}✓ 端口 8080 正在监听${NC}" || echo -e "${YELLOW}⚠ 端口 8080 未被监听${NC}"
|
||||
elif command -v ss &> /dev/null; then
|
||||
ss -tlnp 2>/dev/null | grep ":8080" && echo -e "${GREEN}✓ 端口 8080 正在监听${NC}" || echo -e "${YELLOW}⚠ 端口 8080 未被监听${NC}"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# 输出信息
|
||||
echo -e "${GREEN}========================================${NC}"
|
||||
echo -e "${GREEN}重新安装完成!${NC}"
|
||||
echo -e "${GREEN}========================================${NC}"
|
||||
echo ""
|
||||
echo -e "${YELLOW}重要提示:${NC}"
|
||||
echo -e " ${GREEN}1. 第一个登录的用户将自动成为管理员${NC}"
|
||||
echo -e " 2. 请清除浏览器 Cookie 和缓存(重要!)"
|
||||
echo -e " 3. 访问: http://${SERVER_IP}:${GERRIT_PORT}"
|
||||
echo -e " 4. 点击 'Sign In',输入用户名(例如:admin)"
|
||||
echo -e " 5. 第一个登录的用户将自动成为管理员"
|
||||
echo -e " 6. 登录后应该能看到 'CREATE NEW' 按钮"
|
||||
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 " 查看状态: 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}"
|
||||
|
||||
Reference in New Issue
Block a user