1. 程式人生 > >CentOS 7 下 Gitlab 漢化安裝部署

CentOS 7 下 Gitlab 漢化安裝部署

        GitLab簡介

GitLab是利用Ruby On Rails開發的一個開源版本管理系統,實現了一個自託管的Git專案倉庫,是集程式碼託管,測試,部署於一體的開源git倉庫管理軟體,可通過web介面來進行訪問公開的或私人專案。與Github類似,GitLab能夠瀏覽程式碼,管理缺陷和註釋。可以管理團隊對倉庫的訪問,它非常易於瀏覽提交過的版本,並提供一個檔案歷史庫。它還提供一個程式碼片段收集功能可以輕鬆實現程式碼複用,便於日後需要的時候查詢。

Git的家族成員:

                         

Git:是一種版本控制系統,是一個命令,是一種工具。

                         Gitlib:是用於實現Git功能的開發庫。

                         

Github:是一個基於Git實現的線上程式碼託管倉庫,公開專案是免費的,也可以付費建立私人專案。

                         GitLab:是一個基於Git實現的線上程式碼倉庫託管軟體,可以用GitLab搭建一套類似Github的系統。

GitLab對硬體還是有一定要求的,1核心的CPU基本上可以滿足需求,大概支撐100個左右的使用者,不過在執行GitLab網站的同時還需要執行多個後臺job,就會顯得有點捉襟見肘了。需要至少4GB的可定址記憶體(RAM交換)來安裝和使用GitLab,作業系統和任何其他正在執行的應用程式也將使用記憶體,因此請記住,在執行GitLab之前,您至少需要4GB的可用空間,如果使用更少的記憶體,GitLab將在重新配置執行期間給出奇怪的錯誤。


一、環境準備

  作業系統:CentOS 7

  CPU:2核

  記憶體:4G

    說明:硬體根據我查到的資料( https://docs.gitlab.com/ce/install/requirements.html ),結合使用人數的考慮,故選擇了2核4G的配置,實際配置時需要根據gitlab使用人數的負載來決定硬體配置

1.1更新yum源

yum install wget                                #下載wget
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak     #備份yum源
wget -O /etc/yum.repo.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo    #下載yum源
yum clean all &&  yum makecache                #更新yum源


二、獲取gitlab漢化包

說明:gitlab中文社群版的專案,v7-v8.8是由Larry Li發起的“GitLab 中文社群版專案”(https://gitlab.com/larryli/gitlab),從 v8.9 之後,@xhang 開始繼續該漢化專案(https://gitlab.com/xhang/gitlab)。

yum install -y git

2.1 克隆獲取漢化版本庫

  下載最新的漢化包(漢化包需與安裝的Gitlab版本一致)

git clone https://gitlab.com/xhang/gitlab.git


  如果是要下載指定版本的漢化包,需要加上指定版本的分支,比如我想下載11.5.6,可以執行下面的語句

git clone https://gitlab.com/xhang/gitlab.git -b v11.5.3版本的-zh

本次下載使用的是11.5.3 

clipboard.png


 2.2 檢視該漢化補丁的版本

cat gitlab/VERSION

clipboard.png

可以看到現在的版本是11.5.3


三、部署社群版Gitlab

3.1安裝前準備選項

   安裝gitlab的依賴項

yum install -y curl openssh-server openssh-clients postfix cronie policycoreutils-python   #10.x以後開始依賴policycoreutils-python,我之前在使用9.x時還沒有依賴該項。


  啟動postfix,並設定為開機啟動  

systemctl start postfix 
systemctl enable postfix


  設定防火牆   ,也可以直接關閉

firewall-cmd --add-service=http --permanent firewall-cmd --reload


3.2獲取Gitlab的rpm包


    檢視清華開源映象站,查詢11.5.3的rpm包。

https://mirrors .tuna.tsinghua.edu.cn /gitlab-ce/yum/el7/

image.png

獲取rpm包  

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.5.3-ce.0.el7.x86_64.rpm


當然也可以使用官方的網址進行下載,速度可能會很慢

  官方下載:https://packages.gitlab.com/gitlab/gitlab-ce/



3.3安裝RPM包

rpm -ivh gitlab-ce-11.5.3-ce.0.el7.x86_64.rpm

image.png


根據提示,繼續執行指令配置gitlab。  

gitlab-ctl reconfigure

image.png

 3.5修改配置檔案gitlab.rb

vim /etc/gitlab/gitlab.rb

將external_url變數的地址修改為gitlab所在CentOS的ip地址。(有域名的話可以配成域名)。

image.png


3.6 配置郵箱

vim /etc/gitlab/gitlab.rb
郵箱配置:
gitlab_rails[ 'smtp_enable' ] =   true
gitlab_rails[' smtp_address '] =   " smtp.mxhichina.com "
gitlab_rails[' smtp_port '] = 465
gitlab_rails[' smtp_user_name '] =   " xxxxxxxxx"
gitlab_rails[' smtp_password '] =   " xxxxxxxx "
gitlab_rails[' smtp_authentication '] =   " login "
gitlab_rails[' smtp_enable_starttls_auto '] =   true
gitlab_rails[' smtp_tls '] =   true
gitlab_rails[' gitlab_email_from '] =   ' xxxxxxxxx '

image.png

因為修改了配置檔案,故需要重新載入配置內容。

gitlab-ctl reconfigure
gitlab-ctl restart

  3.7 檢視Gitlab版本  

head -1 /opt/gitlab/version-manifest.txt


image.png


四、覆蓋漢化包

注:漢化後使用root使用者登入可能會出現漢化不完全現象,建立其他使用者後使用非root使用者登入即可正常顯示

停止Gitlab服務

gitlab-ctl stop


 切換到Gitlab漢化包所在的目錄(即步驟二獲取的漢化版Gitlab)  

cd /root/gitlab


  比較漢化標籤和原標籤,匯出 patch 用的 diff 檔案到/root下  

git diff v11.5.3 v11.5.3-zh > ../11.5.3-zh.diff

 回到/root目錄

cd

 將11.5.3-zh.diff作為補丁更新到Gitlab中  

yum install patch -y
patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 11.5.3-zh.diff

 啟動Gitlab

gitlab-ctl start

 重新配置並重啟Gitlab  

gitlab-ctl reconfigure
gitlab-ctl restart

還有一種簡單的運用中文補丁的方式,首先關閉服務

gitlab-ctl stop

 複製漢化包內容至Gitlab目錄內覆蓋

cp -rf gitlab /*  /opt/gitlab/embedded/service/gitlab-rails/

複製可能出現如下提示,可以不用理會。

AElFTkSuQmCC.png

  重新配置並重啟Gitlab  

gitlab-ctl reconfigure
gitlab-ctl restart

五、設定管理員密碼

    管理員賬號登入的使用者名稱:root

    (雖然登入後管理員的使用者名稱為Administrator,但是實際登入的使用者名稱是root)

    瀏覽器訪問gitlab所在的ip,輸入密碼後點擊 “Change your password”(如果進行漢化,點選“修改密碼”)。

71-391254302.png


8-2027065574.png

clipboard.png

六、修改預設埠

有時,需要修改預設埠,保證不與伺服器其他埠相沖突

6.1   修改 nginx 埠   (預設80,與其他埠衝突時修改)

vim /etc/gitlab/gitlab.rb


按照如下修改

nginx['listen_port'] = 8081
 
vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
server {
 
  listen *:8081;
.
.
.
  if ($http_host = "") {
    set $http_host_with_default "192.168.99.65:8081";
  }



6.2   修改 unicorn 埠   (預設8080,可能會與Tomcat埠衝突,衝突時修改)

注:訪問出現 502 錯誤時大多數原因是該埠未被監聽導致

vim /etc/gitlab/gitlab.rb
unicorn['port'] = 8089
 
vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb
listen "127.0.0.1:8089", :tcp_nopush => true


6.3   重新配置並重啟Gitlab  

gitlab-ctl reconfigure
gitlab-ctl restart

注:重啟服務有延時,unicorn 埠需要耐心等待一會才能被監聽

netstat -tunlp


clipboard.png



七、GitLab的命令

語法:

gitlab-ctl command (subcommand)

Service Management Commands

start

啟動所有服務

stop

關閉所有服務

restart

重啟所有服務

status

檢視所有服務狀態

tail

檢視日誌資訊

service-list

列舉所有啟動服務

graceful-kill

平穩停止一個服務

例子:

 

1

2

3

4

5

6

7

8

9

10

11

#啟動所有服務

[[email protected] ~] # gitlab-ctl start

 

#啟動單獨一個服務

[[email protected] ~] # gitlab-ctl start nginx

 

#檢視日誌,檢視所有日誌

[[email protected] ~] # gitlab-ctl tail

 

#檢視具體一個日誌,類似tail -f

[[email protected] ~] # gitlab-ctl tail nginx

General Commands

help

幫助

reconfigure

修改配置檔案之後,需要重新載入下

show-config

檢視所有服務配置檔案資訊

uninstall

解除安裝這個軟體

cleanse

刪除gitlab資料,重新白手起家




例子:

gitlab-ctl show-config     #顯示所有服務配置檔案 
gitlab-ctl uninstall    #解除安裝gitlab


image.png