gerrit+git+apach +nginx

第一次部署代碼服務器,用了大概一週時間!看了很多博客最後才搞定!對linux 系統非常不熟,還重裝了一次系統!

第一次成功之後,以後再部署應該就沒什麼難度了。

這裏有幾個關鍵點:

1.下載timeshift 備份系統,這一步非常關鍵,因爲ubuntu不知道什麼時候就崩了,我就遇到過一次什麼軟件都打不開,重啓之後乾脆連開機都開不了了,最後沒辦法只能重裝系統。

重裝系統之後先別做什麼更新啊什麼的,先去把下載源給換了,不然能等你1個多小時!

具體操作參照:https://zhuanlan.zhihu.com/p/61228593

更新號系統之後去安裝TimeShift

sudo apt-add-repository -y ppa:teejee2008/ppa
sudo apt update
sudo apt install timeshift

安裝完之後 設置一下備份的內容https://www.jianshu.com/p/a1b5610c9a50

更多設置百度一下有很多。

2.安裝git

sudo apt install git

git --version //用來測試 

網上資料很多https://blog.csdn.net/qq282330332/article/details/51855252 

3.配置java 環境

  下載jdk8(目前官網要註冊才能下載,但可以去國內的一些資源網站找)

#下載安裝JDK(1.8) 需要自己去找資源包,官網現在需要註冊

#進入指定文件夾,解壓壓縮包
tar -zxvf jdk*.tar.gz 

# java環境變量配置文檔
#1.打開配置文件
sudo vim /etc/profile 
# 2.按 i 進入插入面板,後拉到底部 添加
i
#3.添加配置環境變量
export JAVA_HOME=/apps/java  #jdk文件目錄(上面解壓目錄)
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
#4.保存退出
esc
shift+:
wq
enter

#5.讓指令生效
source /etc/profile

#6.測試指令是否成功
javac/java -version

 

4.安裝 nginx

#安裝配置nginx
sudo apt-get install nginx
#出現安裝失敗
dpkg: error processing package bluez (--configure) 
解決辦法:
$ sudo mv /var/lib/dpkg/info/ /var/lib/dpkg/info_old/
$ sudo mkdir /var/lib/dpkg/info/
$ sudo apt-get update
...
$ sudo apt-get -f install
...

$ sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old/
$ sudo rm -rf /var/lib/dpkg/info
$ sudo mv /var/lib/dpkg/info_old/ /var/lib/dpkg/info/
輸入上述命令之後,在執行 sudo apt-get update 和 sudo apt-get upgrade 就不會有問題了。

#出現啓動失敗
Job for nginx.service failed because the control process exited with error code. See “systemctl stat
#1.nginx配置文件有錯誤
#運行下面命令查看修改
nginx -t
#已經啓動nginx或者配置文件中的端口號被佔用
#檢查端口是否被佔用
netstat -tnlp
#如果端口已經被佔用,自己權衡一下是換個端口還是把佔用端口的進程殺掉
#檢查nginx是否已經啓動
ps -aux | grep nginx
#如果已經啓動使用下面命令幹掉即可
pkill -9 nginx

#啓動nginx
sudo /etc/init.d/nginx start

#reload nginx
sudo nginx -s reload

#失敗 端口80被cupsd 進程佔用
#修改配置文件
sudo gedit /etc/nginx/sites-available/default
修改端口

 

5.安裝apach

sudo apt-get install apache2

相關資料:https://blog.csdn.net/gatieme/article/details/53025505 網上有很多

6.創建gerrit 賬號

#5.gerrit管理帳號(可選,使用獨立賬號配置gerrit)

sudo adduser gerrit

sudo passwd gerrit

#並將gerrit加入sudo權限

sudo vim /etc/sudoers

#插入

gerrit #後面的複製root賬號

i

esc

shift+:

wq! #強制修改

切換到gerrit 賬號

su gerrit

這裏切換到gerrit 之後要注意:後面配置的時候很可能會出現permissionDennied 的錯誤,因爲涉及到的賬號密碼或者其他文件是需要權限的

6.安裝gerrit

 

#安裝配置gerrit
#edit gerrit config gerrit配置文件
sudo vim ./review_site/etc/gerrit.config
//need edit canonicalWebUrl to your ip add 
//httpd listenUrl port must be the same with canonicalWebUrl:wq
[gerrit]
	basePath = git
	canonicalWebUrl = http://192.168.x.xxx:8081/
[database]
	type = h2
	database = /media/gerrit/3ae7dad6-d7d2-42d4-8a2d-cb747297c6e1/myapps/gerrit_site/db/ReviewDB
[index]
	type = LUCENE
[auth]
	type = HTTP
[oauth]
    allowEditFullName = true
    allowRegisterNewEmail = true
[receive]
    enableSignedPush = true
[sendemail]
	enable = true
	smtpServer = smtp.qq.com
	smtpEncryption = SSL
	smtpServerPort = 465
	sslVerify = true
	smtpUser = [email protected]
        smtpPass = xxx
        from = Code Review<[email protected]>
[container]
	user = gerrit
	javaHome = /media/gerrit/3ae7dad6-d7d2-42d4-8a2d-cb747297c6e1/myapps/jdk1.8.0_212/jre
[sshd]
	listenAddress = *:29418
[httpd]
	listenUrl = proxy-https://*:8081/
[cache]
	directory = cache
[http]
	proxy = http://192.168.x.xxx:8080

[theme]
        backgroundColor = FCFEEF
        textColor = 000000
        trimColor = D4E9A9
        selectionColor = FFFFCC
        topMenuColor = D4E9A9
        changeTableOutdatedColor = F08080
[theme "signed-in"]
        backgroundColor = FFFFFF

#chek gerrit err log //查看gerrit 錯誤日誌
gerrit_reviewsite/log/error_log


# htpasswd add user config
sudo htpasswd -c gerrit.passwd admin //管理員賬號

touch ./gerrit_site/etc/passwd //添加普通賬號
htpasswd -b ./gerrit_site/etc/gerrit.passwd a 123456



#apach log 查看apach 錯誤日誌
cd /var/log/apache2
#apach 配件
<VirtualHost *:8080>                                                                                                            
     ServerName 192.168.8.xxx
     ProxyRequests Off
     ProxyVia Off
     ProxyPreserveHost On
     AllowEncodedSlashes On
     RewriteEngine On
     RewriteRule ^/(.*) http://192.168.x.xxx:8081/$1 [NE,P]
 
     <Proxy *>
         Order deny,allow  
         Allow from all
     </Proxy>
 
     <Location /login/>
         AuthType Basic
         AuthName "Gerrit Code Review"
         Require valid-user
         AuthBasicProvider file
         AuthUserFile /media/gerrit/3ae7dad6-d7d2-42d4-8a2d-cb747297c6e1/myapps/gerrit_site/etc/gerrit.passwd
     </Location>
 
     ProxyPass / http://192.168.1.xxx:8081/
 
</VirtualHost>
#nginx log 查看nginx 錯誤日誌
192.168.x.xxx:358
/var/log/nginx/error.log

#存放賬號密碼的文件路徑,注意權限問題,gerrit要有權限訪問
/media/gerrit/myapps/gerrit_site/etc/gerrit.passwd

#重啓apache2
sudo /etc/init.d/apache2 restart
#gerrit smtp郵箱配置:注意smtp 郵箱配置smtpuser的時候需要去自己的
郵箱開啓smtp服務,之後smtppasswd要寫授權碼

 

 注意:全部安裝完成以後再去弄配置文件,只要安裝成功慢慢修改配置文件一般都會成功,當然windows 下訪問的時候會有坑

1.由於gerrit 使用的KexAlgorrithms diffie-hellman-group1-sha1 和本地策略不一致

需要收到在.ssh/ 文件夾裏面加入config文件 (注意文件名稱就是config 無後綴)

Host 服務器IP地址
	KexAlgorithms +diffie-hellman-group1-sha1

2.clone 的時候要使用 clone with commit-msg 那個地址,因爲gerrit 每次提交需要changeid 這東西就是產生changeid 的

3.gerrit 不允許直接提交到master,只有經過審覈才能summit,push路徑需要配置

git config remote.origin.push refs/heads/*:refs/for/*

4.提交的時候要輸入賬號密碼,注意密碼是生成的  在gerrit 網頁上登錄之後 在Settings 裏面 HttpPassword

5.當領導讓你導入已有的git項目的時候讓你把日誌一起弄進去!

gerrit 可以配置forcepush 另外admin 賬號是可以不審覈直接提交的!(也可以removeviewers)

大概花了4天半的時間!後面越來越熟了,基本都是看日誌解決問題,不用向無頭蒼蠅到處亂撞了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章