11.1、簡介
Github 是國外的專案託管平臺,由於網路問題,在國內訪問和使用不是很方便。
Gitee 是國內的專案託管平臺,雖然在訪問和使用上挺方便的,但依然讓人擔憂專案程式碼可能會被洩露。
因此,從企業或機構的角度出發,是傾向於在內部自建一個專案託管平臺,將絕對管理權控制在自己手中的。
GitLab 作為一個用於專案程式碼倉庫管理的開源專案,則能很好地滿足企業或機構在內部自建專案託管平臺的需求。
11.2、安裝
本節演示如何使用 rpm 安裝包,在 CentOS 7 中離線安裝 GitLab 。
11.2.1、下載安裝包
gitlab 官網下載地址:https://packages.gitlab.com/gitlab/gitlab-ce
清華大學開源軟體映象站下載地址(推薦):https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
如上圖所示,本文選擇使用 gitlab-ce-16.10.6-ce.0.el7.x86_64.rpm 版本的安裝包。
提示:EL7 是 Red Hat 7.x,CentOS 7.x 和 CloudLinux 7.x 的下載。
11.2.2、伺服器準備
本文將 GitLab 安裝在 CentOS 7 虛擬機器上,虛擬機器配置為 2 核 CPU 、4G 記憶體、16G 磁碟。
關於 CentOS 7 虛擬機器的安裝方法,請參考安裝CentOS7虛擬機器這篇文章。
注意:16G 磁碟是最低配置要求;我使用過 8G 磁碟的虛擬機器,安裝完 GitLab 後,再新建一個普通使用者賬號,就用完了 8G 磁碟的空間,甚至都還沒有建立任何專案倉庫。 關於如何擴容 CentOS 7 虛擬機器的磁碟,請參考VirtualBox擴容CentOS-7虛擬機器磁碟這篇文章。
11.2.3、上傳安裝包到伺服器
如上圖所示,使用 mobaxterm 之類的工具,將 rpm 安裝包上傳到 CentOS 伺服器。
11.2.4、執行安裝包
rpm -ivh 安裝包名稱
錯誤:依賴檢測失敗:
policycoreutils-python 被 gitlab-ce-16.10.6-ce.0.el7.x86_64 需要
注意:如果執行 GitLab 安裝包時存在上述錯誤,則需要先安裝 policycoreutils-python 依賴。
11.2.5、修改external_url配置
如上圖所示,external_url 配置在 /etc/gitlab/gitlab.rb 檔案中。
vi /etc/gitlab/gitlab.rb
如上圖所示,external_url 配置預設值為 http://gitlab.example.com 。
如上圖所示,將 external_url 配置修改為 'http://192.168.56.120:10005 。
其中,192.168.56.120 是 GitLab 所在的伺服器的 IP ;10005 是自定義的埠,否則 GitLab 會佔用 80 埠。
11.2.6、重新載入配置檔案
gitlab-ctl reconfigure
注意:重新載入配置檔案的過程比較耗時,耐心等待即可,出現 gitlab Reconfigured! 即操作成功。
11.2.7、檢視埠占用情況
上圖為 CentOS 自身所使用的埠。
上圖為重新載入 GitLab 配置檔案後,埠的變化。
新載入 Gitlab 配置檔案,會自動啟動或重啟 Gitlab ;所以不用再重複執行啟動或重啟命令。
11.2.8、常用命令速查表
命令 | 作用 |
---|---|
gitlab-ctl start | 啟動 GitLab |
gitlab-ctl restart | 重啟 GitLab |
gitlab-ctl stop | 停止 GitLab |
gitlab-ctl reconfigure | 新載入 GitLab 配置檔案 |
gitlab-ctl status | 檢視 GitLab 狀態 |
gitlab-rake gitlab:check SANITIZE=true | 檢查 GitLab |
gitlab-ctl tail | 檢視 GitLab 日誌 |
11.2.9、檢視管理員初始化密碼
如上圖所示,在第一次成功重新載入配置檔案後,會為 GitLab 的 root 管理員賬號隨機生成一個初始化密碼;該密碼會在 24 小時後自動刪除。
cat /etc/gitlab/initial_root_password
11.3、Gitlab的基本使用
11.3.1、訪問GitLab登入頁
如上圖所示,使用在 11.2.5 節配置的 external_url (http://192.168.56.120:10005)即可訪問 GitLab 登入頁。
注意:如果訪問不了登入頁,可能是伺服器的防火牆問題,關掉防火牆即可;
systemctl stop firewalld
11.3.2、登入root管理員賬號
如上圖所示,使用生成的初始化密碼,登入root管理員賬號。
如上圖所示,這便是 GitLab 的主頁。
11.3.3、修改介面語言為中文
如上圖所示,點選“Preference”。
如上圖所示,將 Language 選擇為簡體中文,然後儲存修改。
11.3.4、修改root管理員密碼
如上圖所示,點選“編輯個人資料”。
如上圖所示,在“密碼”介面中,即可修改密碼。
如上圖所示,修改密碼後,需要重新登入。
11.3.5、停用註冊功能
如上圖所示,GitLab 預設開啟自由註冊賬號功能,但是 GitLab 一般用於企業內部,因此一般都會停用註冊功能,賬號應由 root 管理員建立。
如上圖所示,取消“已啟用註冊功能”,然後儲存更改即可。
如上圖所示,停用註冊功能後,登陸頁面的“立即註冊”入口消失了。
如上圖所示,如果想恢復啟用註冊功能,在“管理中心”->“設定”->“通用”中,可以找到“註冊限制”的配置項恢復配置。
11.3.6、建立新賬號
如上圖所示,在“管理中心”->“概覽”->“使用者”中,可以找到建立新使用者的按鈕。
如上圖所示,設定新使用者的名稱、使用者名稱和電子郵件。
如上圖所示,設定新使用者的許可權為“管理員”。
如上圖所示,新建使用者成功後,會自動跳轉到該使用者的資料頁,可以點選“編輯”按鈕,為該使用者重置密碼。
如上圖所示,為該使用者設定密碼後,點選“儲存更改”即可。
11.3.7、建立遠端倉庫
如上圖所示,點選“建立專案”。
如上圖所示,選擇“建立空白專案”。
如上圖所示,設定倉庫名稱、倉庫歸屬使用者、倉庫可見級別,然後點選“新建專案”按鈕,即可建立一個遠端庫倉庫。
如上圖所示,倉庫新建成功,可以獲取到這個倉庫的 HTTP 和 SSH 地址。
11.3.8、配置SSH金鑰
如上圖所示,點選“編輯個人資料”->“SSH金鑰”,進入配置SSH金鑰的介面;然後點選“新增新金鑰”按鈕。
如上圖所示,將在本地生成的 SSH 公鑰複製到 GitLab,然後點選“新增金鑰”即可完成SSH金鑰的配置。
提示:關於本地生成和檢視的 SSH 公鑰方式,請參考7.10.2 和 7.10.3 小節。
如上圖所示,已成功在 GitLab 中新增了一個本地電腦生成的公鑰。
這樣一來,以後在本地電腦,使用遠端倉庫的 SSH 地址執行 push (推送)命令的時候,就不需要登入了。
11.3.9、生成訪問令牌
如上圖所示,點選“編輯個人資料”->“訪問令牌”,進入配置訪問令牌的介面;然後點選“新增新令牌”按鈕。
如上圖所示,在新增訪問令牌的配置介面中,設定該訪問令牌的名稱(任意名稱,本例為for_idea),設定該令牌的過期時間,還有設定該令牌的許可權(本例選中api,即全許可權);然後點選“建立個人訪問令牌”即可生成一個訪問令牌。
如上圖所示,訪問令牌已成功生成。
注意:該訪問令牌相當於 GitLab 的賬號密碼,所以不能向陌生人透露。
此外,該訪問令牌要儘快複製儲存,否則重新整理頁面後就消失;如果沒能及時儲存,也可以刪除重新生成一個。
11.4、IDEA整合GitLab
11.4.1、安裝GitLab外掛
如上圖所示,在“File”->“Settings”->“Version Control”中可以看到,IDEA 預設沒有和 GitLab 的相關的功能,因此需要額外安裝 GitLab 外掛。
如上圖所示,在“Plugins”->“Marketplace”中,搜尋“GitLab”,即可找到 GitLab 外掛來安裝。
如上圖所示,安裝完成外掛後,需要重啟 IDEA 才能使用該外掛。
如上圖所示,GitLab 外掛安裝成功後,可以在“Version Control”中找到和 GitLab 的相關的功能。
11.4.2、配置GitLab伺服器
如上圖所示,在“Version Control”->“GitLab”中,點選“Add New GitLab Server”按鈕,在彈窗中,配置 GitLab 伺服器的地址。
注意:這裡使用到了 11.3.9 節生成的訪問令牌。
11.4.3、分享專案到GitLab
11.4.3.1、開啟分享彈窗
如上圖所示,點選“VCS”->“Import into Version Control”->“Share Project on GitLab”,即可開啟分享專案到 GitLab 的彈窗。
11.4.3.2、設定遠端庫屬性
如上圖所示,在彈窗中設定遠端庫的名稱(本例為 gitlab_gittest)、遠端庫的分組(本例為 lb-liaojy )、遠端庫的連線型別(本例為 SSH)以及遠端庫的可見級別(本例為 Public )。
11.4.3.3、分享操作效果
如上圖所示,確認進行 SSH 連線。
如上圖所示,在彈窗中點選“share”按鈕(相當於建立遠端庫然後push操作)後,專案成功地被分享到 GitLab 。
如上圖所示,在 GitLab 中可以看到遠端庫已存在。
關於如何使用 IDEA 推送更新到遠端庫、拉取更新到本地庫以及克隆遠端庫到本地,請參考10.4.4、10.4.5 和 10.4.6 節,本文不再贅述。