Files
gerrit/标准重新安装.sh
2025-12-22 17:12:39 +08:00

156 lines
3.8 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Gerrit 标准重新安装脚本
# 参考: https://blog.51cto.com/wst021sh/5086764
set -e
# 配置变量
GERRIT_HOME="/home/renjianbo/gerrit_install"
GERRIT_VERSION="3.9.0"
GERRIT_USER="renjianbo"
GERRIT_PORT="8080"
GERRIT_SSH_PORT="29418"
SERVER_IP="101.43.95.130"
JAVA_HOME="/usr/local/java/jdk-17.0.12+7"
export JAVA_HOME
export PATH=$JAVA_HOME/bin:$PATH
echo "=========================================="
echo "Gerrit 标准重新安装"
echo "版本: ${GERRIT_VERSION}"
echo "=========================================="
echo ""
# 1. 停止现有服务
echo "[1/7] 停止现有服务..."
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
fi
fi
pkill -9 -f "gerrit.war" 2>/dev/null || true
sleep 2
echo "✓ 服务已停止"
echo ""
# 2. 删除旧安装
echo "[2/7] 删除旧安装..."
cd ${GERRIT_HOME}
rm -rf review_site
echo "✓ 已删除旧安装"
echo ""
# 3. 检查并下载 Gerrit
echo "[3/7] 检查安装包..."
if [ ! -f "gerrit-${GERRIT_VERSION}.war" ]; then
echo "下载 Gerrit ${GERRIT_VERSION}..."
wget -q https://gerrit-releases.storage.googleapis.com/gerrit-${GERRIT_VERSION}.war
fi
echo "✓ 安装包就绪"
echo ""
# 4. 初始化 Gerrit
echo "[4/7] 初始化 Gerrit这可能需要几分钟..."
cd ${GERRIT_HOME}
java -Dgerrit.canonicalWebUrl=http://${SERVER_IP}:${GERRIT_PORT}/ \
-jar gerrit-${GERRIT_VERSION}.war init \
-d review_site \
--batch \
--no-auto-start \
--install-plugin=download-commands \
--install-plugin=replication \
--install-plugin=reviewnotes
echo "✓ 初始化完成"
echo ""
# 5. 配置 Gerrit
echo "[5/7] 配置 Gerrit..."
cd ${GERRIT_HOME}/review_site
# 创建配置文件
cat > etc/gerrit.config << EOF
[gerrit]
basePath = git
canonicalWebUrl = http://${SERVER_IP}:${GERRIT_PORT}/
serverId = $(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
EOF
echo "✓ 配置完成"
echo ""
# 6. 配置启动脚本
echo "[6/7] 配置启动脚本..."
cd ${GERRIT_HOME}/review_site
# 备份原脚本
cp bin/gerrit.sh bin/gerrit.sh.bak
# 在脚本开头添加 Java 环境变量
if ! grep -q "JAVA_HOME.*jdk-17" bin/gerrit.sh; then
sed -i "2i export JAVA_HOME=${JAVA_HOME}\nexport PATH=\$JAVA_HOME/bin:\$PATH" bin/gerrit.sh
fi
echo "✓ 启动脚本已配置"
echo ""
# 7. 启动服务
echo "[7/7] 启动 Gerrit 服务..."
cd ${GERRIT_HOME}/review_site
bin/gerrit.sh start
echo "等待服务启动..."
sleep 8
# 检查服务状态
if bin/gerrit.sh status 2>&1 | grep -q "Gerrit running\|Running"; then
echo "✓ 服务启动成功"
else
echo "检查服务状态..."
bin/gerrit.sh status 2>&1 | head -10
fi
echo ""
echo "=========================================="
echo "安装完成!"
echo "=========================================="
echo ""
echo "访问地址: http://${SERVER_IP}:${GERRIT_PORT}"
echo ""
echo "重要提示:"
echo "1. 清除浏览器 Cookie 和缓存"
echo "2. 访问上述地址"
echo "3. 点击 'Sign In'输入用户名例如admin"
echo "4. 第一个登录的用户将自动成为管理员"
echo "5. 登录后应该能看到 'CREATE NEW' 按钮"
echo ""
echo "常用命令:"
echo " 查看状态: cd ${GERRIT_HOME}/review_site && bin/gerrit.sh status"
echo " 查看日志: tail -f ${GERRIT_HOME}/review_site/logs/error_log"
echo " 停止服务: cd ${GERRIT_HOME}/review_site && bin/gerrit.sh stop"
echo " 重启服务: cd ${GERRIT_HOME}/review_site && bin/gerrit.sh restart"
echo ""