操作系统选择
推荐使用主流Linux发行版(Ubuntu 22.04 LTS或CentOS 8),通过以下命令更新系统组件:
sudo apt update && sudo apt upgrade -y # Ubuntu sudo yum update -y && sudo yum upgrade -y # CentOS
依赖环境安装
安装Java运行时(Gerrit 3.6+需Java 11+):
sudo apt install openjdk-17-jdk # Ubuntu sudo yum install java-17-openjdk # CentOS
配置数据库(默认使用内置H2,生产环境建议MySQL/PostgreSQL):
sudo apt install mysql-server # 以MySQL为例 sudo mysql_secure_installation
防火墙配置示例:
sudo ufw allow 29418/tcp # Gerrit默认SSH端口 sudo ufw allow 8080/tcp # Web访问端口
安装与初始化
下载最新稳定版(以3.7.1为例):
wget https://gerrit-releases.storage.googleapis.com/gerrit-3.7.1.war
初始化安装:
java -jar gerrit-3.7.1.war init --batch --dev --site-path /var/gerrit --install-plugin download-commands --install-plugin replication
关键配置文件说明
gerrit.config
基础配置: [gerrit] basePath = git canonicalWebUrl = http://your-domain.com:8080
[database]
type = mysql
hostname = localhost
database = reviewdb
username = gerrit_user
[auth]
type = HTTP
2. `secure.config` 安全配置:
```ini
[ldap]
password = encrypted_password
[sendemail]
smtpPass = encrypted_smtp_password
精细化权限策略
groups
文件定义角色: # groups/admin
uuid: admin-team
name: Administrators
uuid: dev-group
name: Core Developers
2. 项目权限`project.config`示例:
```ini
[access "refs/*"]
label-Code-Review = -2..+2 group Core Developers
submit = group Core Developers
[access "refs/meta/config"]
read = group Project Owners
CI/CD管道对接
stage('Gerrit Trigger') { gerritEvents: [ [project: 'my-project', branch: 'master', event: 'patchset-created'] ] }
性能调优策略
JVM参数优化(gerrit.config
):
[container] javaOptions = -Xmx8g -Xms4g -XX:MaxGCPauseMillis=200
查询缓存加速:
ALTER SYSTEM SET shared_buffers = '4GB'; # PostgreSQL优化示例
日志监控体系
/var/gerrit/logs/*.log { daily missingok rotate 30 compress }
安全防护措施
server { listen 443 ssl; ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem; location / { proxy_pass http://localhost:8080; } }
每日全量备份脚本示例:
#!/bin/bash mysqldump -u gerrit_user -p reviewdb > /backup/gerrit-db-$(date +%F).sql tar czf /backup/gerrit-data-$(date +%F).tar.gz /var/gerrit/git
快速恢复指令:
mysql -u gerrit_user -p reviewdb < gerrit-db-backup.sql tar xzf gerrit-data-backup.tar.gz -C /var/gerrit/
权威引用来源
Gerrit官方文档:https://gerrit-documentation.storage.googleapis.com
MySQL性能优化指南:https://dev.mysql.com/doc/refman/8.0/en/optimization.html
Nginx SSL配置规范:https://ssl-config.mozilla.org