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