前面我們討論了git的四種通信協(xié)議和自己手動(dòng)創(chuàng)建私服的方式,雖然利用通信協(xié)議可以自己手動(dòng)搭建公共倉(cāng)庫(kù),但是開(kāi)發(fā)中不建議這么做洲鸠,因?yàn)榇罱ㄒ粋€(gè)成熟的git源碼私服組件不是一件簡(jiǎn)單的事,我們?cè)诠箔h(huán)境中常用的github赁温,gitlab坛怪,碼云等,都是頁(yè)面美觀功能豐富的公有倉(cāng)庫(kù)股囊,構(gòu)建這樣一個(gè)私服不亞于一個(gè)大型項(xiàng)目袜匿,而版本控制系統(tǒng)在我們的開(kāi)發(fā)中只是一個(gè)工具,并不值得花這種功夫≈烧睿現(xiàn)在有很多開(kāi)源的Git私服軟件可以供我們使用居灯,讓我們可以安裝在自己的服務(wù)器中,使數(shù)據(jù)私有化内狗,比如最經(jīng)典的gitlab怪嫌,和輕量級(jí)的gogs(推薦),下面先來(lái)介紹一下gitlab的安裝柳沙。
相信大家都使用過(guò)github岩灭,gitlab與github類(lèi)似,GitLab是由GitLabInc.開(kāi)發(fā)赂鲤,使用MIT許可證的基于網(wǎng)絡(luò)的Git倉(cāng)庫(kù)管理工具噪径,且具有wiki和issue跟蹤功能。使用Git作為代碼管理工具数初,并在此基礎(chǔ)上搭建起來(lái)的web服務(wù)找爱。最初,該產(chǎn)品命名為GitLab泡孩,是完全免費(fèi)的開(kāi)源軟件车摄,按照MIT許可證分發(fā)。2013年7月,產(chǎn)品被拆分為:GitLabCE(社區(qū)版)和GitLabEE(企業(yè)版)吮播,當(dāng)時(shí)变屁,GitLabCE和GitLabEE的許可仍然是根據(jù)MIT許可分發(fā)的免費(fèi)和開(kāi)源軟件。下面演示一下如何安裝gitlab社區(qū)版薄料。首先需要在服務(wù)器上安裝好git敞贡。
安裝好git后泵琳,接下來(lái)配置好環(huán)境:
sudo yum install -y curl policycoreutils-python openssh-server cronie
sudo lokkit -s http -s ssh
安裝郵件服務(wù):
sudo yum install postfix
修改myhostname和mydomain摄职,去掉myhostname和mydomain的注釋?zhuān)?/p>
vim /etc/postfix/main.cf
然后執(zhí)行:
sudo service postfix start
sudo chkconfig postfix on
接下來(lái)的安裝可以分為兩種,一種是在線安裝获列,一種是離線安裝谷市,在線安裝命令簡(jiǎn)單,但是安裝速度慢击孩,離線安裝需要下載自己想要安裝的版本迫悠,這里推薦離線安裝,版本穩(wěn)定巩梢,以后的重裝和數(shù)據(jù)備份恢復(fù)都很穩(wěn)定创泄。
在線安裝
添加gitlab社區(qū)版庫(kù):
curl??https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh| sudo bash
下一步,安裝gitlab包括蝠。改變`http://gitlab.example.com`的URL鞠抑,修改為自己制定的域名。安裝將自動(dòng)配置和URL開(kāi)始gitlab忌警。HTTPS需要在安裝后附加配置:
sudo EXTERNAL_URL="http://gitlab.example.com" yum -y install gitlab-ce
這一步會(huì)下載時(shí)間長(zhǎng)些搁拙,安裝完成后,啟動(dòng):
gitlab-ctl reconfigure
啟動(dòng)完后法绵,在瀏覽器登錄箕速,輸入域名,默認(rèn)使用80端口朋譬,會(huì)進(jìn)入密碼重置頁(yè)面盐茎,輸入新的密碼,輸入完提交以后徙赢,會(huì)進(jìn)入登錄頁(yè)面字柠,用戶(hù)名為 root,然后輸入密碼可以進(jìn)入gitlab私服的首頁(yè)犀忱!
離線安裝
離線安裝需要下載離線包募谎,下載地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/,比如我們下載10版本中最后一個(gè)版本:
我的個(gè)人云盤(pán)提取地址:鏈接:https://pan.baidu.com/s/1wBcCtDj1191BvKubiXLeqQ? ?提取碼:hkae
下載完后阴汇,直接放到服務(wù)器上面数冬,然后執(zhí)行下面的命令,其中的域名按自己實(shí)際情況調(diào)整:
sudo EXTERNAL_URL="http://gitlab.example.com" rpm -i?gitlab-ce-10.8.7-ce.0.el7.x86_64.rpm
安裝完成后,執(zhí)行啟動(dòng)命令:
gitlab-ctl reconfigure
這樣離線安裝就完成了拐纱,離線安裝好處很多铜异,可以固定的使用同一個(gè)版本,安裝包只需要下載一次秸架,同版本恢復(fù)數(shù)據(jù)比不同版本要簡(jiǎn)單的多揍庄,所以推薦使用離線安裝。
數(shù)據(jù)備份
數(shù)據(jù)備份命令:
gitlab-rake gitlab:backup:create
默認(rèn)情況下东抹,gitlab的備份數(shù)據(jù)會(huì)放在? ?/var/opt/gitlab/backups? 文件夾下面蚂子,打包成tar文件,
如果要修改默認(rèn)的數(shù)據(jù)備份文件缭黔,需要修改gitlab的配置文件:
vim??/etc/gitlab/gitlab.rb
放開(kāi)注釋?zhuān)瑢?xiě)上自己的目錄即可食茎。備份功能可以配合Linux的定時(shí)任務(wù),每天做項(xiàng)目數(shù)據(jù)的定時(shí)備份馏谨。
數(shù)據(jù)恢復(fù)
我們的gitlab如果不幸掛了别渔,沒(méi)關(guān)系,安裝同一個(gè)版本的gitlab惧互,然后可以通過(guò)備份數(shù)據(jù)把項(xiàng)目徹底恢復(fù)哎媚。如果我們不小心刪除了一個(gè)重要的項(xiàng)目,也可以通過(guò)數(shù)據(jù)恢復(fù)找回來(lái)喊儡。注意拨与,GItlab只能還原到與備份文件相同的gitlab版本。
下面開(kāi)始數(shù)據(jù)恢復(fù)管宵,首先截珍,停止相關(guān)數(shù)據(jù)連接服務(wù):
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-ctl status
下一步,通過(guò)之前的備份文件進(jìn)行恢復(fù)(必須要備份文件放到備份路徑下箩朴,這里備份路徑使用系統(tǒng)默認(rèn)的岗喉,默認(rèn)的是/var/opt/gitlab/backups,備份文件名為:1562922212_2019_07_12_11.9.9_gitlab_backup.tar):
cd??/var/opt/gitlab/backups
gitlab-rake gitlab:backup:restore BACKUP=1562922212_2019_07_12_11.9.9
注意輸入的文件名字要輸入??_gitlab_backup.tar 簽名的內(nèi)容炸庞。
恢復(fù)數(shù)據(jù)完成后钱床,再次啟動(dòng)gitlab,
gitlab-ctl start
恢復(fù)命令完成后埠居,可以check檢查一下恢復(fù)情況:
gitlab-rake gitlab:check SANITIZE=true
然后稍等一會(huì)(如果啟動(dòng)gitlab后查牌,訪問(wèn)出現(xiàn)500,這是因?yàn)閞edis等程序還沒(méi)完全啟動(dòng)滥壕,等一會(huì)兒訪問(wèn)就ok了)纸颜,再次登錄Gitlab,就會(huì)發(fā)現(xiàn)之前誤刪除的項(xiàng)目已經(jīng)恢復(fù)了绎橘!
另外:Gitlab遷移與恢復(fù)一樣胁孙,但是要求兩個(gè)GitLab版本號(hào)一致