簡體   English   中英

如何在一台服務器上使用 GitLab 並將所有存儲庫存儲在另一台服務器上?

[英]How can I use GitLab on one server and store all of the repositories on another?

我的團隊在/net/CM/repo.git/net/CM/repo2.git的 NAS 服務器上有幾個 git 存儲庫。 我最近加入了團隊並向他們介紹了 GitLab,他們認為這將是一個很好的實施工具。

但是,他們希望我將 GitLab 安裝在不同的服務器上,我們將其稱為 Super Server,另一個我們將稱為 NAS Server。

我已經在超級服務器上安裝了 GitLab 並且它運行良好,但是我很難讓它在 NAS 服務器上檢測我的 git 存儲庫。 那可能嗎? 如果可能,我不希望團隊的其他成員不得不更改他們的 git 存儲庫上的遠程源。 我希望他們繼續推送到標准存儲庫,GitLab 應該檢測到更改。

我嘗試設置git_data_dir這篇 Stack Overflow 帖子中所述

git_data_dir "/net/CM/"

但是當我運行sudo gitlab-ctl reconfigure ,我最終sudo gitlab-ctl reconfigure了權限錯誤。 它說它不能在/net/CM/創建目錄。

我還嘗試創建一個/net/git-data/目錄,並將權限設置為 777 只是為了看看它是否有效,但無濟於事。

總而言之,如何讓 GitLab 的網絡軟件在我的超級服務器上運行,而我的所有存儲庫都在我的 NAS 服務器上?

更新

有人問我如何掛載NAS服務器。 當我加入團隊時,我遵循了提供給我的說明,但它們是:

# I pulled out the ip's and ports for security purposes.
sudo apt-get install nfs-common
sudo mkdir /net
sudo mount -t nfs -o proto=tcp,port=[port] [ip]:/net /net
sudo vim /etc/fstab
# Add the following lines to fstab:
[ip]:/net /net nfs auto 0 0
[ip]:/project_name /projectname nfs auto 0 0

我進入了我們的 NAS 配置並將我的超級服務器 IP 地址添加到“啟用根權限的主機”中,一切都很好。 我還沒有測試過我是否可以在重新配置后取消選中該框並查看是否仍然有效。

NFS 本身並不知道如何比較來自不同主機的用戶。 因此,當您掛載 NFS 共享時,您會從服務器獲取用戶 ID,但本地 NFS 客戶端不知道它們映射到哪個本地用戶。 畢竟,User 1000 可以是服務器上的 Anton 和本地的 Ben。

要解決此問題,您有很多選擇。 最簡單的一種方法是確保兩台計算機上都有相同的用戶,您可以配置idmapd以讓 NFS 知道。

有關的:

自 2015 年以來的注意和更新:

GitLab 13.11(2021 年 4 月)確實提到:

不推薦使用用於 Git 存儲庫存儲的 NFS

隨着Gitaly Cluster的普遍可用性(在GitLab 13.0 中引入,2020 年 5 月),我們將棄用對 GitLab 14.0 中 Git 存儲庫的 NFS 支持

我們希望幫助您避免購買不需要的昂貴 NFS 設備,因此邀請當前使用 NFS for Git 存儲庫的客戶開始計划遷移。

我們很高興提供有關遷移到 Gitaly 集群的文檔。

要查看我們的整體狀態,請查看我們的Gitaly 集群路線圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM