1、Gitlab介紹
GitLab是一個流行的版本控制系統平臺,主要用於程式碼託管、測試和部署。
GitLab是基於Git的一個開源專案,它提供了一個用於倉庫管理的Web服務。GitLab使用Ruby on Rails構建,並提供了諸如wiki和issue跟蹤等功能。它允許使用者透過Web介面訪問公開或私有的專案,並能夠管理團隊對倉庫的訪問許可權。此外,GitLab還支援持續整合(CI)和持續部署(CD),使其成為軟體開發過程中的重要工具。
GitLab的主要特點包括:
- 版本控制:作為一個基於Git的平臺,GitLab提供了強大的版本控制功能,允許使用者建立分支、合併程式碼以及處理衝突。
- 程式碼審查:GitLab支援程式碼審查流程,團隊成員可以對提交的程式碼進行評論和討論。
- 專案管理:透過Issue和Merge Request等特性,GitLab幫助團隊跟蹤進度和管理任務。
- 持續整合/持續部署:GitLab CI/CD是其核心功能之一,支援自動化的構建、測試和部署流程。
- 自託管與雲服務:GitLab可以自行在本地伺服器上部署,也可以使用GitLab提供的雲服務。
- 內建工具:GitLab提供了一系列的內建工具,如容器掃描、安全性報告、效能分析等,以增強開發流程的安全性和效率。
- 社群版和企業版:GitLab提供社群版(CE)和企業版(EE),社群版免費開放,而企業版提供了更多的高階功能。
2、GitLab與Git的關係,以及GitHub的區別和聯絡
GitLab是在Git的基礎上搭建起來的,與GitHub有著相似的功能但也存在一些差異。
首先,Git是一個分散式版本控制系統,而GitLab和GitHub都是基於這個系統建立起來的平臺。
GitLab的主要優點在於它的開源特性,允許使用者在私有伺服器上執行,這對於企業內部網路構建私有倉庫非常有用。而GitHub雖然提供了類似的服務,但其核心是面向開源專案的託管平臺,對於私有倉庫則有一定的收費政策。
其次,GitLab提供了免費的無限私有儲存庫,適合企業、學校等內部網路搭建git私服。相比之下,GitHub的私有倉庫需要付費。此外,GitLab還提供了企業版(GitLab EE),它包含了更高階的功能,如訪問控制、安全性以及合規性等。
最後,GitHub因其較早成立,擁有更廣泛的使用者基礎和社群支援。這使得GitHub在全球開發者中的知名度和使用率都較高。而GitLab雖然相對較新,但由於其開源和免費的特性,也逐漸獲得了市場的認可。
3、搭建Gitlab
3.1、下載gitlab-ce的rpm軟體包
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ee/packages/el/7/gitlab-ee-16.10.0-ee.0.el7.x86_64.rpm
3.2、rpm安裝gitlab
rpm -ivh gitlab-ee-16.10.0-ee.0.el7.x86_64.rpm
安裝完成後截圖如下:
3.3、建立gitlab儲存目錄
建立gitlab資料儲存目錄 mkdir -p /nfs/gitlab/gitdata 建立gitlab備份儲存目錄 mkdir -p /nfs/gitlab/backups
3.3、修改gitlab配置檔案
vi /etc/gitlab/gitlab.rb
修改訪問地址 external_url 'http://10.1.16.173' 修改GitLab伺服器時區 gitlab_rails[‘time_zone’] = 'Asia/Shanghai' 修改資料儲存目錄 git_data_dirs({ "default" => { "path" => "/nfs/gitlab/gitdata" } }) 設定郵箱服務 gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "emailsmtp02.mindray.com" gitlab_rails['smtp_port'] = 25 # gitlab_rails['smtp_user_name'] = "smtp user" # gitlab_rails['smtp_password'] = "smtp password" gitlab_rails['smtp_domain'] = "mindray.com" # gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = false gitlab_rails['smtp_pool'] = false gitlab_rails['smtp_openssl_verify_mode'] = 'none' 修改日誌存放路徑 gitlab_rails['log_directory'] = "/nfs/gitlab/log"
停止當前gitlab,重新載入配置
gitlab-ctl stop gitlab-ctl reconfigure gitlab-ctl start
重新載入後,會發現在/nfs/gitlab/gitdata目錄下多出一個repositories目錄
最後啟動gitlab即可
gitlab-ctl restart
訪問web系統
http://10.1.16.173
此時應該看到的是 GitLab 登入介面。在 GitLab 第一次初始化時,會自動生成一個管理員賬戶。其中,該賬戶的使用者名稱為 root,密碼在一個自動生成的檔案 /etc/gitlab/initial_root_password 中(密碼不會含空格),且會在 24 小時後自動被刪除。
現在要做的是,先備份上述的檔案 initial_root_password,然後登入管理員賬戶修改管理員密碼。新密碼長度不能小於 8 位。
[root@hqiotnfs01l ~]# cat /etc/gitlab/initial_root_password # WARNING: This value is valid only in the following conditions # 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run). # 2. Password hasn't been changed manually, either via UI or via command line. # # If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password. Password: kCsRV6ijYc3X2RceyfdhZEB5E7OqXBjESLpQrCrpY/0=
修改密碼
root
XXXXXXXX
3.4、gitlab相關命令
#啟動服務 gitlab-ctl start #停止服務 gitlab-ctl stop #重啟服務 gitlab-ctl restart #狀態 gitlab-ctl status #監控 gitlab-ctl tailunicorn 監控unicorn日誌 gitlab-ctl tail 檢視Gitlab 安裝包 rpm –qa | grep gitlab 刪除gitlab rpm –e gitlab-ce 檢視gitlab 程序 ps aux | grep gitlab 殺掉所有gitlab 程序 Kill –9 程序號 刪除所有包含gitlab檔案 find / -name | grep gitlab rm -rf
4、Gitlab配置