選擇將用來搭建 GitLab CE 的操作系統(tǒng):
CentOS 7 (and RedHat/Oracle/Scientific Linux 7)
檢查您的服務器是否符合硬件需求.GitLab packages 是專為64位系統(tǒng)編譯的. 如需安裝到32位操作系統(tǒng),可考慮其他的安裝方法.
本次以GitLab 9.0 的安裝與漢化進行例子
1. 安裝配置依賴項
首先對自己的環(huán)境進行確認,我搭建的環(huán)境是阿里云鏡像Cenots7.2 64位版本
進入系統(tǒng)后我進行了所有依賴yum 環(huán)境的更新
yum update
如想使用Postfix來發(fā)送郵件,在安裝期間請選擇'Internet Site'. 您也可以用sendmai或者配置SMTP服務并使用SMTP發(fā)送郵件.
在 Centos 6 和 7 系統(tǒng)上, 下面的命令將在系統(tǒng)防火墻里面開放HTTP和SSH端口.
sudo yum install curl policycoreutils openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
2. 添加GitLab倉庫,并安裝到服務器上
可以選擇使用 yum 一鍵安裝包 一般默認最高版本
curl -sS http://packages.gitlab.cc/install/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce
如果你不習慣使用命令管道的安裝方式, 你可以在這里下載手動下載您使用的系統(tǒng)相應的安裝包(RPM/Deb)然后安裝
curl -LJO https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-XXX.rpm
rpm -i gitlab-ce-XXX.rpm
3. 啟動GitLab
#載入配置啟動 (安裝好后執(zhí)行就默認啟動了,每次修改配置都需要進行載入配置啟動)
sudo gitlab-ctl reconfigure ?
(下面是日常基本操作)
#啟動GitLab所以組件
sudo gitlab-ctl start
#重啟GitLab所有組件
sudo gitlab-ctl stop
4. 使用瀏覽器訪問GitLab
首次訪問GitLab,系統(tǒng)會讓你重新設置管理員的密碼,設置成功后會返回登錄界面.
默認的管理員賬號是root,如果你想更改默認管理員賬號,請輸入上面設置的新密碼登錄系統(tǒng)后修改帳號名.
5.進行GitLab的漢化
GitLab中文社區(qū)(有完整的漢化流程并且一直在更新)
Omnibus 安裝漢化
1. 使用 marbleqi 制作的漢化增量補丁包(未使用過此方法)
注: 使用該漢化補丁包需要重新配置編譯資源文件 (沒找到鏈接- -!)
sudo gitlab-ctl reconfigure
2. 手動導出漢化補丁包漢化
請先使用官方包安裝或升級完成,確認當前版本。
(首先做好備份,不然失敗后你會很痛苦的 后面會講到備份!建議先看)
sudo cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
假設當前版本為 v9.0.0,并確認漢化版本庫是否包含該版本的漢化標簽(-zh結尾),也就是是否包含 v9.0.0-zh。
如果版本相同,首先在本地 clone 倉庫。
# 克隆漢化版本庫
git clone https://gitlab.com/xhang/gitlab.git
# 如果已經(jīng)克隆過,則進行更新
git fetch
然后比較漢化標簽和原標簽,導出 patch 用的 diff 文件。
# 導出9.0.0 版本的漢化補丁
git diff v9.0.0 v9.0.0-zh > ../9.0.0-zh.diff
然后上傳 9.0.0-zh.diff 文件到服務器。
# 停止 gitlab
sudo gitlab-ctl stop
sudo patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 9.0.0-zh.diff
確定沒有 .rej 文件,重啟 GitLab 即可。
sudo gitlab-ctl start
執(zhí)行重新配置命令
sudo gitlab-ctl reconfigure
如果漢化中出現(xiàn)問題,請重新安裝 GitLab(注意備份數(shù)據(jù))。
6.備份與升級
漢化備份
#在漢化之前把此文件目錄壓縮備份起來
zip filename.zip /opt/gitlab/embedded/service/gitlab-rails#如果漢化出現(xiàn)問題再將此壓縮包放回去
/opt/gitlab/embedded/service/gitlab-rails 主要是gitlab的web主要文件夾
Gitlab 創(chuàng)建備份(這是一個標準的備份方式)
使用Gitlab一鍵安裝包安裝Gitlab非常簡單, 同樣的備份恢復與遷移也非常簡單. 使用一條命令即可創(chuàng)建完整的Gitlab備份:
gitlab-rake gitlab:backup:create
使用以上命令會在/var/opt/gitlab/backups目錄下創(chuàng)建一個名稱類似為1393513186_gitlab_backup.tar的壓縮包, 這個壓縮包就是Gitlab整個的完整部分, 其中開頭的1393513186是備份創(chuàng)建的日期.
Gitlab 修改備份文件默認目錄
你也可以通過修改/etc/gitlab/gitlab.rb來修改默認存放備份文件的目錄:
gitlab_rails['backup_path'] ='/mnt/backups' ?#例如修改到此路徑下
/mnt/backups修改為你想存放備份的目錄即可, 修改完成之后使用gitlab-ctl reconfigure命令重載配置文件即可.
Gitlab 自動備份
也可以通過crontab使用備份命令實現(xiàn)自動備份:
sudosu -crontab -e
加入以下, 實現(xiàn)每天凌晨2點進行一次自動備份:
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
Gitlab 恢復
同樣, Gitlab的從備份恢復也非常簡單:
# 停止相關數(shù)據(jù)連接服務
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
# 從1393513186編號備份中恢復
gitlab-rake gitlab:backup:restore BACKUP=1393513186
# 啟動Gitlab
sudo gitlab-ctlstart
#注意恢復的版本要一致喲!!!
Gitlab遷移
遷移如同備份與恢復的步驟一樣, 只需要將老服務器/var/opt/gitlab/backups目錄下的備份文件拷貝到新服務器上的/var/opt/gitlab/backups即可(如果你沒修改過默認備份目錄的話). 但是需要注意的是新服務器上的Gitlab的版本必須與創(chuàng)建備份時的Gitlab版本號相同. 比如新服務器安裝的是最新的7.60版本的Gitlab, 那么遷移之前, 最好將老服務器的Gitlab 升級為7.60在進行備份.
Gitlab升級
(升級前做好備份)
#一鍵安裝的更新方式
# Debian/Ubuntusudo apt-get update
sudo apt-get install gitlab-ce
# Centos/RHEL
sudo yum install gitlab-ce
#通過手動下載官方包更新
更新包地址
# Debian/Ubuntudpkg -i gitlab-ce-XXX.deb
# CentOS/RHEL
rpm -Uvh gitlab-ce-XXX.rpm