Gitlab部署和汉化以及简单运维
Gitlab部署和漢化以及簡(jiǎn)單運(yùn)維
Xuanwo's Blog 原文? https://xuanwo.org/2016/04/13/gitlab-install-intro/ 主題 GitLab 運(yùn)維技術(shù)在跟網(wǎng)絡(luò)中心的老師溝通成立鏡像站的相關(guān)事宜的時(shí)候,意外地接下來(lái)搭建一套校內(nèi)的 Git 服務(wù)的任務(wù)。
@怡紅公子曾經(jīng)搭建過(guò)一套類似的服務(wù),但由于服務(wù)器端沒(méi)有開(kāi)啟 VT 虛擬化導(dǎo)致不能安裝 64 位的操作系統(tǒng),再加上 Gitlab 不提供 32 位的安裝包,所以長(zhǎng)期以來(lái)怡紅公子一直都是自行編譯并配置 Gitlab 。考慮到后續(xù)維護(hù)的方便,我們決定趁著這個(gè)機(jī)會(huì)使用另一臺(tái)支持安裝 64 位操作系統(tǒng)的服務(wù)器,一勞永逸地解決這個(gè)問(wèn)題。
我們的服務(wù)器環(huán)境是 CentOS 7.2 64bit,以下所有操作均以此為基準(zhǔn)。
Gitlab 安裝
推薦使用 Install a GitLab CE Omnibus package安裝 ,其他發(fā)行版可以點(diǎn)選對(duì)應(yīng)版本,不再贅述。
安裝和配置依賴
如果需要安裝 Postfix 來(lái)發(fā)送郵件,則需要在安裝過(guò)程中選擇 Internet Site。你也可以使用 Sendmail 之類的第三方發(fā)信服務(wù)或者使用自行配制的 SMTP 服務(wù)器。
除此以外,下列命令將會(huì)在防火墻中打開(kāi) HTTP(80) 和 SSH(22) 對(duì)應(yīng)端口。
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添加 Gitlab 源并安裝
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash sudo yum install gitlab-ce這個(gè)腳本會(huì)在源中添加 Gitlab-CE ,并自動(dòng)執(zhí)行 yum makecache,然后安裝 gitlab-ce。由于源在國(guó)外,可能速度較慢,也可以手動(dòng)添加來(lái)自 清華tuna 的源: https://mirrors.tuna.tsinghua.edu.cn/help/gitlab-ce/, 鏈接中為各發(fā)行版下的教程,感謝 清華tuna 提供鏡像。
配置并啟動(dòng) Gitlab
此時(shí)已經(jīng)可以啟動(dòng)服務(wù)了:
sudo gitlab-ctl reconfigure進(jìn)行一長(zhǎng)串復(fù)雜的啟動(dòng)流程之后, gitlab 就已經(jīng)可以通過(guò) localhost進(jìn)行訪問(wèn)了。
Gitlab 配置
修改域名
默認(rèn)的配置文件保存在 /etc/gitlab/gitlab.rb,執(zhí)行:
sudo vim /etc/gitlab/gitlab.rb打開(kāi)文件,并修改:
external_url 'http://your.domain'再次執(zhí)行
sudo gitlab-ctl reconfigure即可。
有一定概率出現(xiàn) 502 錯(cuò)誤,刷新瀏覽器或者再次更新配置即可。
Gitlab 漢化
由于服務(wù)對(duì)象是廣大師生,為了降低新手上手的難度,所有進(jìn)行漢化也是非常有必要的。好在國(guó)內(nèi)有人已經(jīng)進(jìn)行了這方面的工作,我們只需要共享其成果即可(歡迎向 原項(xiàng)目提交高質(zhì)量翻譯)。
首先確認(rèn)版本:
sudo cat /opt/gitlab/embedded/service/gitlab-rails/VERSION并確認(rèn)當(dāng)前漢化版本的 VERSION 是否相同,當(dāng)前最新的漢化版本為 8.6 。
如果安裝版本小于當(dāng)前漢化版本,請(qǐng)先升級(jí)。如果安裝版本大于當(dāng)前漢化版本,請(qǐng)?jiān)诒卷?xiàng)目中提交新的 issue。
如果版本相同,首先在本地 clone 倉(cāng)庫(kù)。
# GitLab.com 倉(cāng)庫(kù) git clone https://gitlab.com/larryli/gitlab.git# 或 Coding.net 鏡像 git clone https://git.coding.net/larryli/gitlab.git根據(jù)我的測(cè)試, Coding.net 的鏡像不完整,clone 之后無(wú)法 checkout
然后比較漢化分支和原分支,導(dǎo)出 patch 用的 diff 文件。
# 8.1 版本的漢化補(bǔ)丁 git diff origin/8-6-stable..8-6-zh > ../8.6.diff然后上傳 8.6.diff文件到服務(wù)器。
# 停止 gitlab sudo gitlab-ctl stop sudo patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 8.6.diff確定沒(méi)有 .rej 文件,重啟 GitLab 即可。
sudo gitlab-ctl start如果漢化中出現(xiàn)問(wèn)題,請(qǐng)重新安裝 GitLab( 注意備份數(shù)據(jù))。
Gitlab 運(yùn)維
管理
# 啟動(dòng)所有 gitlab 組件: sudo gitlab-ctl start# 停止所有 gitlab 組件: sudo gitlab-ctl stop# 重啟所有 gitlab 組件: sudo gitlab-ctl restart備份
備份GitLab repositories and GitLab metadata
在 crontab 中加入如下命令:
0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create恢復(fù)
首先進(jìn)入備份 gitlab 的目錄,這個(gè)目錄是配置文件中的 gitlab_rails['backup_path'],默認(rèn)為 /var/opt/gitlab/backups。
然后停止 unicorn 和 sidekiq ,保證數(shù)據(jù)庫(kù)沒(méi)有新的連接,不會(huì)有寫(xiě)數(shù)據(jù)情況。
sudo gitlab-ctl stop unicorn # ok: down: unicorn: 0s, normally up sudo gitlab-ctl stop sidekiq # ok: down: sidekiq: 0s, normally up然后恢復(fù)數(shù)據(jù),1406691018為備份文件的時(shí)間戳
gitlab-rake gitlab:backup:restore BACKUP=1406691018總結(jié)
以上是生活随笔為你收集整理的Gitlab部署和汉化以及简单运维的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: gitlab 邮件配置(smtp)
- 下一篇: Google发布了能理解人类语言的云服务