Gitlab維護記錄
目前互聯網公司主流的代碼倉庫統是gitlab,類似github的實現,維護gitlab已經有兩年多的時間,
下面說一下維護過程中的註意點,以及如何維護更好。
分別是搭建,首先得搭建起來,不然怎麽玩,其次是備份、備份、備份,誰也不能保證服務器會不會
突然之間Down掉,為了保險起見,建議所有重要的業務一定要有備份。當然,僅僅有備份還是不夠的,
為什麽呢?因為你還要做恢復演練測試,假如你的備份數據恢復不了,你備份有個毛用,和沒備份是沒有
區別的,所以還要驗證你備份的數據能否恢復系統。再說一下,備份數據不要放在提供服務的主機上,
不然主機掛了你備份數據是取不出來的,到時候就尷尬了,建議放在專門的備份服務器。
Gitlab搭建
gitlab的搭建目前非常簡單了,查看官網就可以搭建,主要是一個rpm包,你裝上了就全部就好了,
現在不需要像以前一樣一個個的編譯了,如果你有興趣也可以這麽做,當然我是不建議的。
下載地址: https://packages.gitlab.com/gitlab/gitlab-ce
1. 安裝依賴軟件
yum install curl openssh-server openssh-clients postfix cronie service postfix start chkconfig postfix on
2.安裝方式可以通過下載rpm包或者添加yum源直接安裝的方法.
使用清華大學的源:
# 新建 /etc/yum.repos.d/gitlab-ce.repo,內容為 [gitlab-ce] name=Gitlab CE Repository baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/ gpgcheck=0 enabled=1
# 安裝命令 yum install gitlab-ce
3. 配置並啟動Gitlab
gitlab-ctl reconfigure
4.登錄gitlab並且重置密碼.
安裝完成後可以通過 http://主機ip 的方式來訪問,會輸入兩次密碼,重置的是管理員root的密碼.重置完成則可以通過root用戶登錄進行管理.
GitLab特殊配置
gitlab安裝完成後會有一個默認的存儲代碼倉庫的路徑,建議自己自定義到大磁盤上,以免之後磁盤空間引起不必要的麻煩。
1. 配置gitlab的項目代碼存儲目錄為 /data/GitData/git-data/
創建目錄 mkdir -pv /data/GitData/git-data/
修改權限 chown git -R /data/GitData/git-data/
2. 修改配置文件
# /etc/gitlab/gitlab.rb 添加配置: git_data_dirs({ "default" => { "path" => "/data/GitData/git-data" } })
3. 配置訪問的域名.
建議使用域名進行訪問,因為使用ip的話不太友好,而且之後換ip後會非常痛苦,相當於所有的使用人員都需要改,這是不能容忍的.
# /etc/gitlab/gitlab.rb 修改配置: external_url ‘http://git.xxxx.com‘
4.配置生效
gitlab-ctl reconfigure
Gitlab-ctl 使用
查看狀態: sudo gitlab-ctl status; # Start all GitLab components (啟動) sudo gitlab-ctl start # Stop all GitLab components (停止) sudo gitlab-ctl stop # Restart all GitLab components(重啟) sudo gitlab-ctl restart
Gitlab 備份
使用Gitlab一鍵安裝包安裝Gitlab非常簡單, 同樣的備份恢復與遷移也非常簡單. 使用一條命令即可創建完整的Gitlab備份:
gitlab-rake gitlab:backup:create
使用以上命令會在/var/opt/gitlab/backups
目錄下創建一個名稱類似為1393513186_gitlab_backup.tar
的壓縮包, 這個
壓縮包就是Gitlab整個的完整部分, 其中開頭的1393513186
是備份創建的日期.
Gitlab 修改備份文件默認目錄
你也可以通過修改/etc/gitlab/gitlab.rb
來修改默認存放備份文件的目錄:
gitlab_rails[‘backup_path‘] = ‘/mnt/backups‘
/mnt/backups
修改為你想存放備份的目錄即可, 修改完成之後使用gitlab-ctl reconfigure
命令重載配置文件即可.
Gitlab 自動備份
也可以通過crontab
使用備份命令實現自動備份
加入以下, 實現每天淩晨2點進行一次自動備份:
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
Gitlab 恢復
同樣, Gitlab的從備份恢復也非常簡單:
# 停止相關數據連接服務 gitlab-ctl stop unicorn gitlab-ctl stop sidekiq # 從1393513186編號備份中恢復 gitlab-rake gitlab:backup:restore BACKUP=1393513186 # 啟動Gitlab sudo gitlab-ctl start
Gitlab遷移
遷移如同備份與恢復的步驟一樣, 只需要將老服務器/var/opt/gitlab/backups
目錄下的備份文件拷貝到新服務器上的/var/opt/gitlab/backups
即可(如果你沒修改過默認備份目錄的話). 但是需要註意的是新服務器上的Gitlab的版本必須與創建備份時的Gitlab版本號相同. 比如新服務器安裝
的是最新的7.60版本的Gitlab, 那麽遷移之前, 最好將老服務器的Gitlab 升級為7.60在進行備份.
參考文檔:
安裝文檔請參考: https://about.gitlab.com/downloads/#centos6
使用文檔請參考: http://doc.gitlab.com/omnibus/
Git災備方法參考: http://segmentfault.com/a/1190000002439923
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/629def0a7a26e7c2326566f0758d4a27857b52a3/README.md#backups
GITLAB下載: https://about.gitlab.com/downloads/archives/
官方文檔參考: http://doc.gitlab.com/omnibus/
https://docs.gitlab.com/omnibus/settings/configuration.html#storing-git-data-in-an-alternative-directory
https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/
Gitlab維護記錄