1. Gitlab和Github的區(qū)別
`Gitlab`是一個(gè)開(kāi)源的`git`倉(cāng)庫(kù)管理軟件档泽,并提供web界面,方便管理`git倉(cāng)庫(kù)`揖赴。和`Github`很相似馆匿,不過(guò)`Github`暫時(shí)沒(méi)有開(kāi)源版本,項(xiàng)目必須托管到`Github`官方網(wǎng)站燥滑,不能本地部署渐北。很多公司考慮到安全費(fèi)用等因素,搭建自己的`Gitlab`服務(wù)器铭拧。
1.1 GitHub如果使用私有倉(cāng)庫(kù)赃蛛,是需要付費(fèi)
的,GitLab可以在自己的服務(wù)器上搭建私人的免費(fèi)倉(cāng)庫(kù)
1.2 GitLab讓開(kāi)發(fā)團(tuán)隊(duì)對(duì)他們的代碼倉(cāng)庫(kù)擁有更多的控制搀菩,相對(duì)于GitHub呕臂,它有不少的特色:
允許免費(fèi)設(shè)置倉(cāng)庫(kù)權(quán)限
允許用戶選擇分享一個(gè)project的
部分代碼
允許用戶設(shè)置
project
的獲取權(quán)限,進(jìn)一步提升安全性可以設(shè)置獲取到團(tuán)隊(duì)整體的改進(jìn)進(jìn)度
通過(guò)
innersourcing
讓不在權(quán)限范圍內(nèi)的人訪問(wèn)不到該資源
2. 服務(wù)器及安裝前準(zhǔn)備
- 服務(wù)器版本:CentOS 7
- 將官網(wǎng)文檔作為安裝指導(dǎo):https://about.gitlab.com/install/
3. 開(kāi)始安裝
3.1 點(diǎn)擊上一步的官網(wǎng)鏈接選擇自己的Linux系統(tǒng)版本肪跋,點(diǎn)擊 install instructions
官網(wǎng)幫助文檔頁(yè)面
3.2 使用遠(yuǎn)程工具(Putty
歧蒋、Xshell
等)登錄到Linux服務(wù)器,使用su root
命令切換至root用戶澎嚣,參考指導(dǎo)文檔疏尿,將下述命令copy至終端運(yùn)行為正式安裝做準(zhǔn)備
sudo yum install -y curl policycoreutils-python openssh-server perl
# Enable OpenSSH server daemon if not enabled: sudo systemctl status sshd
sudo systemctl enable sshd
sudo systemctl start sshd
# Check if opening the firewall is needed with: sudo systemctl status firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
3.3 copy以下命令至終端運(yùn)行,此步是為Gitlab Server向用戶發(fā)郵件做準(zhǔn)備
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
3.4 添加Gitlab Package源
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
如果你有更快的源可以推薦易桃,則替換掉上述的URL
即可
3.5 正式開(kāi)始安裝Gitlab服務(wù)
在終端運(yùn)行以下命令
sudo EXTERNAL_URL="https://gitlab.example.com" yum install -y gitlab-ee
命令講解:
-
EXTERNALURL
意為外部訪問(wèn)鏈接褥琐,該命令中表示待Gitlab安裝完畢后,可在瀏覽器輸入https://gitlab.example.com
遠(yuǎn)程訪問(wèn)服務(wù)器并進(jìn)行注冊(cè)晤郑、登錄敌呈、創(chuàng)建project等操作贸宏。該鏈接可在安裝完畢后,通過(guò)配置文件進(jìn)行更改磕洪。 - 通過(guò)該命令安裝完成后吭练,沒(méi)有為自動(dòng)創(chuàng)建的root管理員賬戶設(shè)置密碼,但會(huì)生成一個(gè)臨時(shí)密碼
3.6 ROOT用戶密碼相關(guān)問(wèn)題
3.6.1 查看系統(tǒng)為root用戶自動(dòng)生成的臨時(shí)密碼
cat /etc/gitlab/initial_root_password
最后一行即為臨時(shí)密碼:
3.6.2 為ROOT用戶重置密碼
- 在終端輸入以下命令進(jìn)入控制臺(tái)對(duì)話框
sudo gitlab-rails console
你將進(jìn)入以下命令窗口:
-
輸入以下命令查找到
root
用戶析显,并將root
用戶的信息賦值給user
變量(root
用戶的ID為1
)user=User.find(1)
-
分別輸入以下命令為
root
用戶重置密碼鲫咽,默認(rèn)密碼長(zhǎng)度不能小于8位,且需要用雙引號(hào)""
將密碼括起來(lái)谷异,切記不可使用單引號(hào)''
(官網(wǎng)文檔上使用的是單引號(hào)分尸,但不知為啥我使用單引號(hào)設(shè)置的密碼登錄系統(tǒng)時(shí)依然顯示密碼錯(cuò)誤)!user.password="12345678" user.password_confirmation="12345678" user.save! exit
save
后面的感嘆號(hào)不可省略歹嘹!
3.7 修改外部訪問(wèn)鏈接
3.7.1 修改鏈接前先準(zhǔn)備一個(gè)沒(méi)有被占用的端口號(hào)箩绍,例如,使用以下命令檢查8888端口是否被占用尺上,且保證防火墻未將此端口屏蔽
netstat -nap | grep 8888
若該端口號(hào)未被占用材蛛,則不會(huì)輸出任何信息
若端口號(hào)被占用,則會(huì)輸出占用該端口的服務(wù)信息怎抛,如:
3.7.2 輸入以下命令打開(kāi)Gitlab配置文件
vi /etc/gitlab/gitlab.rb
在命令模式下輸入/external_url
查找其配置信息所在位置卑吭,按箭頭將光標(biāo)移動(dòng)到想要修改的位置,按下i
或a
鍵進(jìn)入編輯模式
抽诉,將安裝時(shí)使用的https://gitlab.example.com
替換為你想使用的URL陨簇。由于我的服務(wù)器沒(méi)有綁定域名且沒(méi)有進(jìn)行數(shù)字簽名證書(shū)認(rèn)證(不能使用https),直接使用http://公網(wǎng)IP:端口號(hào)
的形式進(jìn)行配置迹淌,如http://192.168.0.14:8888
修改完畢后河绽,按下esc
鍵,輸入wq!
即可保存并退出唉窃。
3.7.3 重置并重啟Gitlab
上述External URL
修改完畢后一定要重置和重啟Gitlab
# 重置Gitlab耙饰,過(guò)程較長(zhǎng),需耐心等待
gitlab-ctl reconfigure
# 重啟Gitlab
gitlab-ctl restart
3.8 訪問(wèn)Gitlab
在其他電腦的瀏覽器地址欄輸入在步驟3.7
中External URL
即可訪問(wèn)到自己搭建的Gitlab
服務(wù)器纹份,root
用戶擁有最高權(quán)限苟跪,使用root
用戶登錄后可進(jìn)行 項(xiàng)目管理,用戶管理蔓涧,權(quán)限配置等操作件已。
可將此鏈接發(fā)給團(tuán)隊(duì)成員,每人注冊(cè)了賬號(hào)后元暴,即可屬于自己的repository篷扩,也可以在管理員的管控下,參與團(tuán)隊(duì)共享的repository茉盏。
一起進(jìn)行協(xié)同開(kāi)發(fā)鉴未、版本控制吧枢冤!
更多強(qiáng)大功能待你發(fā)掘!
篇幅有限铜秆,無(wú)法覆蓋所有可能遇到的問(wèn)題淹真,如遇到困難,歡迎留言或私信交流连茧,記得加個(gè)關(guān)注呦核蘸!