目前互聯網公司主流的代碼倉庫統是gitlab,相似github的實現,維護gitlab已經有兩年多的時間,html
下面說一下維護過程當中的注意點,以及如何維護更好。git
分別是搭建,首先得搭建起來,否則怎麼玩,其次是備份、備份、備份,誰也不能保證服務器會不會github
忽然之間Down掉,爲了保險起見,建議全部重要的業務必定要有備份。固然,僅僅有備份仍是不夠的,segmentfault
爲何呢?由於你還要作恢復演練測試,假如你的備份數據恢復不了,你備份有個毛用,和沒備份是沒有centos
區別的,因此還要驗證你備份的數據可否恢復系統。再說一下,備份數據不要放在提供服務的主機上,bash
否則主機掛了你備份數據是取不出來的,到時候就尷尬了,建議放在專門的備份服務器。服務器
gitlab的搭建目前很是簡單了,查看官網就能夠搭建,主要是一個rpm包,你裝上了就所有就行了,ssh
如今不須要像之前同樣一個個的編譯了,若是你有興趣也能夠這麼作,固然我是不建議的。curl
下載地址: https://packages.gitlab.com/gitlab/gitlab-ceide
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安裝完成後會有一個默認的存儲代碼倉庫的路徑,建議本身自定義到大磁盤上,以避免以後磁盤空間引發沒必要要的麻煩。
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
查看狀態: 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-rake gitlab:backup:create
使用以上命令會在/var/opt/gitlab/backups
目錄下建立一個名稱相似爲1393513186_gitlab_backup.tar
的壓縮包, 這個
壓縮包就是Gitlab整個的完整部分, 其中開頭的1393513186
是備份建立的日期.
你也能夠經過修改/etc/gitlab/gitlab.rb
來修改默認存放備份文件的目錄:
gitlab_rails['backup_path'] = '/mnt/backups'
/mnt/backups
修改成你想存放備份的目錄便可, 修改完成以後使用gitlab-ctl reconfigure
命令重載配置文件便可.
也能夠經過crontab
使用備份命令實現自動備份
加入如下, 實現天天凌晨2點進行一次自動備份:
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
一樣, Gitlab的從備份恢復也很是簡單:
# 中止相關數據鏈接服務 gitlab-ctl stop unicorn gitlab-ctl stop sidekiq # 從1393513186編號備份中恢復 gitlab-rake gitlab:backup:restore BACKUP=1393513186 # 啓動Gitlab sudo gitlab-ctl start
遷移如同備份與恢復的步驟同樣, 只須要將老服務器/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
GITLAB下載: https://about.gitlab.com/downloads/archives/
官方文檔參考: http://doc.gitlab.com/omnibus/