原文地址:https://blog.csdn.net/zhushuai662/article/details/79581377
大家常聽說Git、Github、Gitlab,很多人對着三個詞很懵逼,分別講一下這三個是什么意思。
Git是一個開放源碼的版本控制軟件,還可以把我們的代碼push到遠程倉庫。
Github是一個網站,提供給用戶空間創建git倉庫,保存用戶的一些數據文檔或者代碼等。
Gitlab是一個用於倉庫管理系統的開源項目,使用Git作為代碼管理工具,並在此基礎上搭建起來web服務。可以理解為你自己專屬的github,功能基本一樣,一般公司都會有自己的代碼倉庫
下面講一下Gitlab如何在Linux服務器(centos7版本)上搭建。
服務器內存建議4G以上,我的是8g內存,CentOS Linux release 7.4.1708 (Core),執行以下代碼一路暢行,
為什么要說這個呢,之前我用國外的512M小霸王服務器,鼓搗了一下午都不可以,解決所有報錯后,更是在最后一步服務器死機,徹底GG
1、在系統防火牆中打開http和ssh的出口。
sudo yum install -y curl policycoreutils-python openssh-server
控制台輸出“Complete!”后繼續執行命令:
sudo systemctl enable sshd
sudo systemctl start sshd
使sshd服務器自動啟動,然后執行:
sudo firewall-cmd --permanent --add-service=http
在執行這句命令如果出現“FirewallD is not running”的提示,則表示防火牆未打開,
可以執行“sudo systemctl status firewalld”查看防火牆狀態,如果防火牆是“dead”狀態,
可以執行“sudo systemctl start firewalld”命令啟動防火牆。
再返回執行上面的添加服務命令,如果出現“success”則執行成功。
最后執行下面命令reload防火牆。 sudo systemctl reload firewalld
加入Gitlab的郵件服務,用於接受郵件。執行下面的命令:
sudo yum install postfix sudo systemctl enable postfix
sudo systemctl start postfix
如果不想使用Gitlab提供的郵件服務,可以跳過上面的命令,在安裝完Gitlab后,配置自己的郵件服務
2、安裝Gitlab。 執行下面命令安裝倉庫
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
接下來安裝Gitlab安裝包,執行下面的命令:
sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ee
“http://gitlab.example.com”可以更改為你想要訪問Gitlab實例的url,如果要安裝https,需要在安裝完成后額外配置。
比如設置為 "http:172.168.10.251:8088" 搭建完成后就可以通過這個地址訪問gitlab
執行這個命令將會下載比較大的安裝包,時間會長一些,可以耐心等待。
3、打開瀏覽器登錄。 第一次登錄時,Gitlab會讓你修改密碼,修改后使用root賬戶和新密碼登錄。
如果忘記設置初始密碼,可以通過后台設置
cd /opt/gitlab/bin
sudo gitlab-rails console production #需要等幾秒運行程序
u=User.where(id:1)
u.password='12345678'
u.password_confirmation='12345678'
u.save! #注意有個嘆號
如果提示true,則修改管理員密碼成功
4、然后 添加用戶、創建組、向組中添加用戶、創建項目(按照用戶或者按照組創建)、然后各用戶自己添加ssh公鑰到gitlab中,好了,直接push或者clone代碼吧,
另外代碼倉庫默認在 /var/opt/gitlab/git-data 目錄
PS:如果不知道ssh公鑰,可以參考 https://www.cnblogs.com/lz0925/p/10725010.html
如果出現gitlab的nginx與原Nginx沖突,或者報錯如下
[root@ACA83229 nginx]# service nginx restart
Stoping nginx... nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
failed. Use force-quit
Terminating nginx... done
Starting nginx... nginx (pid 25521 25520 25519 25518 25517 25516 25515) already running.
此時你可以參考 https://www.cnblogs.com/lz0925/p/10879763.html