Author:Mr.Gao
Git 簡介
GitLab是一個開源版本管理系統,是集代碼托管,測試,部署於一體的開源git倉庫管理軟件,可通過web界面來進行訪問公開的或私人項目。與Github類似,GitLab能夠瀏覽代碼,管理缺陷和注釋。可以管理團隊對倉庫的訪問,它非常易於瀏覽提交過的版本,並提供一個文件歷史庫。是目前非常流行好用的研發版本控制系統。
Git有三個類分別為:
- Git: 是本地版本控制系統工具。
- Github:是官方在線代碼托管倉庫,可自行注冊使用,https://github.com。
- GitLab:是自建的一個非官方的自有版本倉庫。通俗一點就是公司內部的。
這里要給大家分享的是搭建一個屬於自己的Git倉庫,也就是Gitlab。
Gitlab對硬件還是有一定要求的,因Gitlab有多個job任務及進程,對內存是有要求的,建議1cpu以上,2G內存以上。
部署
前夕准備:
我們將在Centos 7下進行這次實踐
- 關閉防火牆
- 關閉SELinux
- 關閉NetworkManager
$ sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
$ setenforce 0
$ systemctl stop NetworkManager
$ systemctl disable NetworkManager
$ systemctl disable firewalld
$ systemctl stop firewalld
1. 配置yum源(推薦)
添加gitlab源,我這里使用了清華大學的源
$ cp -fr /etc/yum.repos.d /etc/yum.repos.d.bak
$ cat >/etc/yum.repos.d/gitlab-ce.repo <<EOF
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
EOF
2. 安裝
安裝一些git工具包
$ yum makecache
$ yum -y install curl policycoreutils openssh-server openssh-clients postfix cronie git wget patch
$ systemctl restart postfix
$ systemctl enable postfix
$ #yum install gitlab-ce git #自動安裝最新版
$ yum install gitlab-ce-12.3.5 git -y #安裝指定版本,我這里選用了v12.3.5
安裝完畢
配置GitLab
1、加載配置
安裝完成后,第一次加載配置的時候會很慢,耐心等待就好,直到加載完成。
如果一直卡在ruby_block[......] action run
,處理方法:
按住CTRL+C強制結束
運行:$ sudo systemctl restart gitlab-runsvdir
再次執行: $ sudo gitlab-ctl reconfigure
注意:在配置gitlab之前保證80端口沒有被占用
$ gitlab-ctl reconfigure
加載完成后,開始啟動Gitlab,GitLab默認會占用80、8080和9090
端口,如果條件不允許使用80端口,請看下一節,否則可以忽略
$ gitlab-ctl restart
$ gitlab-ctl status
開戶訪問web界面
第一次訪問,系統會要求重置新密碼,管理員的用戶名為root
登錄完成,點擊右上角的Settings進行Preferences設置,在語言項選擇中文,此時刷新后,可以看到標題和右側的導航欄是變為中文的,但是具體的項目並沒有中文顯示,所以會變成中文+英文的LOW爆顯示,后面將會介紹通過補丁/包進行gitlab完美漢化的教程。如圖:
2、修改git默認訪問端口
首先,停用gitlab,$ gitlab-ctl stop
gitlab.rb
用於gitlab如何調用80和8080的服務等
$ cp -fr /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.gao-`date +%Y%m%d`
$ sed -i 's#gitlab.example.com#YOUR_IP:12580#g' /etc/gitlab/gitlab.rb # "$YOUR_IP"請自行修改
$ vim /etc/gitlab/gitlab.rb
nginx['listen_port'] = 12580
nginx['listen_https'] = false
nginx['listen_addresses'] = ['*']
unicorn['listen'] = '127.0.0.1'
unicorn['port'] = 8088
prometheus['listen_address'] = 'localhost:9099'
unicorn.rb
$ cp -fr /var/opt/gitlab/gitlab-rails/etc/unicorn.rb{,.gao-`date +%Y%m%d`}
$ sed -i 's#8080#8088#g' /var/opt/gitlab/gitlab-rails/etc/unicorn.rb
gitlab-http.conf
這個文件是gitlab內置的nginx的配置文件,里面可以影響到nginx真實監聽端口號。
$ cd /var/opt/gitlab/nginx/conf/
$ cp -fr gitlab-http.conf gitlab-http.conf.gao-`date +%Y%m%d`
$ vim gitlab-http.conf #修改以下幾行內容
listen *:12580;
server_name YOUR_IP;
set $http_host_with_default "YOUR_IP:12580";
giltab-shell
$ vim /var/opt/gitlab/gitlab-shell/config.yml
gitlab_url: "http://127.0.0.1:8088" #unicorn_port
3. 代碼發布地址(域名)
$ vim /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: YOUR_IP
port: 12580
https: false
4. 服務驗證
$ gitlab-ctl reconfigure
$ gitlab-rake gitlab:check SANITIZE=true --trace #配置檢查
$ gitlab-ctl restart
$ gitlab-ctl tail #日志輸出,可用於排錯
訪問git地址:http://YOUR_IP:12580
至此!gitlab安裝完成,下面講一下如何進行漢化
漢化Gitlab(more)
下載對應版本的漢化包
Gitlab默認語言是英文,對於想加強英文的同學,建議繼續使用英文,但要求使用中文,這里需要下載一個漢化包
如果要下載指定版本的漢化包,命令如下:
$ cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
12.3.5
$ wget https://gitlab.com/xhang/gitlab/-/archive/v12.3.5-zh/gitlab-v12.3.5-zh.tar.gz
$ tar -zxf gitlab-v12.3.5-zh.tar.gz
下載完成后,將下載的文件夾內容復制到gitlab目錄下,復制前先停止Gitlab
$ gitlab-ctl stop
覆蓋文件進行漢化
漢化包和你的gitlab版本一定要一樣
$ cp -fr /opt/gitlab/embedded/service/gitlab-rails{,gao-`date +%Y%m%d`} ##備份原文件
$ \cp -rf ./gitlab-v12.3.5-zh/* /opt/gitlab/embedded/service/gitlab-rails/
復制時可能不斷提示是否要覆蓋,這時可能是系統每次執行cp命令時,其實是執行了cp -i命令的別名。出現這種情況可以修改~/.bashrc,在“alias cp=’cp -i’”前加#注釋,再刷新文件 source ~/.bashrc
在復制過程中提示,以下信息是正常的:
cp: cannot overwrite non-directory ‘/opt/gitlab/embedded/service/gitlab-rails/log’ with directory ‘./log’
cp: cannot overwrite non-directory ‘/opt/gitlab/embedded/service/gitlab-rails/tmp’ with directory ‘./tmp’
復制完成后,需要重新加載配置,並啟動Gitlab
$ gitlab-ctl reconfigure
$ gitlab-ctl restart
再次訪問gitlab頁面,就可以顯示中文界面,如圖: