場景
GitLab是一個用於倉庫管理系統的開源項目,使用Git作為代碼管理工具,並在此基礎上搭建起來的web服務。
GitLab和GitHub一樣屬於第三方基於Git開發的作品,免費且開源(基於MIT協議),與Github類似,
可以注冊用戶,任意提交你的代碼,添加SSHKey等等。不同的是,GitLab是可以部署到自己的服務器
上,數據庫等一切信息都掌握在自己手上,適合團隊內部協作開發,你總不可能把團隊內部的智慧總放
在別人的服務器上吧?簡單來說可把GitLab看作個人版的GitHub。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。
實現
安裝相關依賴
yum -y install policycoreutils openssh-server openssh-clients postfix
安裝成功之后
確認SSH服務的啟動狀態以及是否設置為開機啟動
可以參考如下博客:
CentOS配置啟動ssh與開機自啟
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/116265771
安裝並設置postfix開機自啟
postfix支持gitlab發信功能
yum -y install postfix
然后啟動
/etc/init.d/postfix start
然后設置為開機啟動
chkconfig postfix on
可以通過
ps -ef | grep postfix
查看是否啟動成功
開放shh以及http服務,然后重新加載防火牆列表
service iptables status
查看防火牆狀態
vi /etc/sysconfig/iptables
編輯防火牆的配置文件
這里開放SSH的22端口以及后面要計划開放的gitlab的82端口
#SSH -A INPUT -p tcp --dport 22 -j ACCEPT #HTTP -A INPUT -p tcp --dport 82 -j ACCEPT
將這兩個配置加到配置文件中
然后重啟防火牆
service iptables restart
下載gitlab包並安裝
為了避免鏡像源導致下載的各種問題,這里直接去國內鏡像站去下載
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
將rpm包上傳到服務器上某路徑下,可以使用xftp等工具進行上傳
安裝
rpm -i gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm
但是這里提示:
##error: Failed dependencies:
policycoreutils-python is needed by gitlab-ce-
這里需要
yum install policycoreutils-python
來安裝相關依賴。
然后再執行上面的安裝gitlab的命令
這樣的話gitlab就安裝成功了。
修改gitlab的配置
通過命令
vi /etc/gitlab/gitlab.rb
編輯gitlab的配置文件
找到external_url的地方,將后面的內容改為服務器的ip和端口號,這里是上面開放的82端口號
然后刷新gitlab的配置
gitlab-ctl reconfigure
這里刷新配置的時間較長,等待完成之后,重新啟動gitlab
gitlab-ctl restart
訪問gitlab頁面
以上都設置完成之后,正常情況下可以直接在瀏覽器中通過ip:端口號的方式訪問到。
但是這里又遇到了問題,訪問不到gitlab的頁面。
首先去排查了gitlab的端口是否修改成功,以及防火牆的對應端口是否開放。
以上沒問題后
這時候查看gitlab的運行日志
sudo gitlab-ctl tail
可以看到一直在輸出
[emerg] 7037#0: bind() to 0.0.0.0:8060 failed (98: Address already in use)
按照提示來看是8060端口被占用了。
所以首先檢查8060端口被哪個進程占用
lsof -i tcp:8060
然后可以看到是被pid為2315的所占用
然后查看2315的具體的位置
ps 2315
然后就能定位這個進程所在的具體位置,確定定這個位置下的進程可以進程關閉后,通過
kill -9 2315
殺死此進程
然后重啟gitlab
sudo gitlab-ctl restart
然后再查看gitlab的運行日志已經不報錯了
此時再通過ip和端口的方式訪問gitlab已經可以了。