gitlab安装
0,Git 安装
yum install git
1,安装JRE(Gerrit暂不支持Java11以上版本)
yum -y install java
2,安装ssh
yum install -y curl policycoreutils-pythonopenssh-server
设置ssh开机自启动--
systemctl enable sshd
启动ssh
systemctl start sshd
3,安装postfix(邮件服务)
yum install postfix
设置开机自启动
systemctl enable postfix
启动postfix
systemctl start postfix
在安装Postfix期间,可能会出现配置屏幕。选择“Internet Site”并按enter键。使用您的服务器的外部DNS以“mail name”并按enter。如果出现额外的屏幕,继续按enter键接受默认值。
4,安装vim
yum install vim -y
5,下载安装gitlab
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.9.4-ce.0.el7.x86_64.rpm
rpm -ivh "包名"
6,修改配置文件/etc/gitlab/gitlab.rb,指定服务器IP和端口(第14行 为域名访问方式)
重置并启动gitlab
gitlab-ctl reconfigure
gitlab-ctl restart
gitlab安装成功
gerrit安装
0,安装MySQL数据库
yum install mysql-server
1,启动MySQL
systemctl restart mysqld
2,查看初始密码
grep 'temporary password' /var/log/mysqld.log
3,配置MySQL,为gerrit用户新建一个数据库
#mysql –u root
-> CREATE USER '库名'@'localhost' IDENTIFIED BY '密码';
-> CREATE DATABASE reviewdb;
-> ALTER DATABASE reviewdb charset=latin1;
-> GRANT ALL ON reviewdb.* TO '库名'@'localhost';
-> FLUSH PRIVILEGES;
4,重启,自启动MySQL
systemctl restart mysqld
systemctl enable mysqld
5,安装Gerrit,安装过程可一路默认,重点在配置文件
wget https://gerrit-releases.storage.googleapis.com/gerrit-3.3.2.war
java -jar gerrit-3.3.2.war init -d /home/gerrit/review_site
[gerrit]
basePath = git
canonicalWebUrl = http://192.168.163.134:81
serverId = 39843baf-01b7-49da-b211-d7593e1c3a39
[database]
type = mysql
database = reviewdb
hostname = localhost
username = han
[container]
javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backe nd.log4j.Log4jBackendFactory#getInstance"
javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.loggin g.LoggingContext#getInstance"
user = root
javaHome = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64/ jre
[index]
type = lucene
[auth]
type = HTTP
[receive]
enableSignedPush = true
[sendemail]
enable = true
smtpServer = smtp.163.com
smtpServerPort = 465
smtpEncryption = SSL
sslVerify = true
smtpUser = 15178928676@163.com
smtpPass = zyh19990828
from = CodeReview<15178928676@163.com>
[sshd]
listenAddress = *:29418
[httpd]
listenUrl = proxy-https://127.0.0.1:81/
[cache]
directory = cache
安装nginx服务
具体教程
https://www.runoob.com/linux/nginx-install-setup.html
配置文件
worker_processes 4;
events {
worker_connections 65535;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 82;
server_name 192.168.163.134;
location / {
auth_basic "Welcome to Gerrit Code Review";
auth_basic_user_file /home/gerrit/gerrit.password;
proxy_pass http://127.0.0.1:81;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
重启nginx
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx
安装Apache服务
依赖环境安装
yum -y install zlib-devel
yum源安装
yum -y install httpd
修改配置文件 /etc/httpd/conf/httpd.conf
Listen 83
<VirtualHost *:83>
ServerName 192.168.163.134
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location /login/>
AuthType Basic
AuthName "Gerrit Code Review"
Require valid-user
AuthUserFile /etc/httpd/passwords
</Location>
AllowEncodedSlashes On
ProxyPass / http://127.0.0.1:81/
</VirtualHost>
用http-tools设置gerrit服务器的账户密码
语法
htpasswd(选项)(参数)
选项
-c:创建一个加密文件;
-n:不更新加密文件,只将加密后的用户名密码显示在屏幕上;
-m:默认采用MD5算法对密码进行加密;
-d:采用CRYPT算法对密码进行加密;
-p:不对密码进行进行加密,即明文密码;
-s:采用SHA算法对密码进行加密;
-b:在命令行中一并输入用户名和密码而不是根据提示输入密码;
-D:删除指定的用户。
实例
新建密码文件并创建管理员账户
htpasswd -bc /home/gerrit/passwd admin 123456
新加入用户
htpasswd -bm /home/gerrit/passwd han 123456
重启Apache服务
systemctl restart httpd
Gerrit与gitlab的联用
创建/home/gerrit/review_site/etc/replication.config 配置文件
内容如下,此为单一项目的配置文件
[remote "001"]
projects = 001
url = ssh://git@192.168.163.134:ZhaoYuHan/001.git
push = +refs/heads/*:refs/heads/*
push = +refs/tags/*:refs/tags/*
push = +refs/changes/*:refs/changes/*
timeout = 30
threads = 4
mirror = true
创建/home/gerrit/review_site/.ssh/config
内容如下
HOST 192.168.163.134
IdentityFile ~/.ssh/id_rsa
PreferredAuthenticationns publickey
1,生成ssh密钥,将gerrit服务器所在用户的公钥放到gitlab服务器上
先设置用户名和邮箱
git config --global user.name ""
git config --global user.email ""
生成秘钥,一直回车,秘钥路径在 ~/.ssh 下
ssh-keygen -t rsa -C "your email"
2,在gerrit web页面创建一个与gitlab上**同名**的项目
3,删除在/home/gerrit/review_site/git下的新建的项目,然后克隆gitlab上的项目到此路径
git clone ....
4,其他用户克隆gerrit上的项目
git clone "ssh://admin@192.168.163.134:29418/001" && scp -p -P 29418 admin@192.168.163.134:hooks/commit-msg "001/.git/hooks/"
5,提交步骤同gitlab
git add file_name
git commit -m "describe" file_name
git push 别名 分支名
如:git push origin HEAD:/refs/for/master
6,Gerrit web页面上此时会有changes消息,管理员review 2次后可submit
OVER!!!