2016-08-17 77 views
0

目前,我們有以下的情況/問題:設置GIT發展服務器

我們的開發工作當地

開發推他到GIT服務器上的存儲庫變化(一切都很好了到現在爲止,因爲GitLab我已經設置了SSH密鑰和個人可以克隆/拉/推)

開發服務器我需要這是來回拉m git和這裏的問題開始。

我們有1開發服務器,與> 20個網站,所以在我看來這是20用戶,我需要把Git中看到的是我們計劃使用它爲所有與創建SSH-鍵爲每個用戶seperatly的,才能夠有存取權限拉那名到庫所做的更改

以上基本進入同樣爲我們的直播服務器。

我不知道如何解決這個問題,有沒有一種集中的方式,我可以簡單地在服務器級別上提供訪問權限以便進行更改?我一直在考慮它大約1.5個月,可能會以錯誤的方式看待它。

補充:我們有大約14臺服務器在運行,所以就是這樣。

+0

「Deploy-Keys」怎麼樣? – tkausl

+0

爲什麼你要堅持每個網站的帳戶?爲什麼不創建一個通用賬戶「開發服務器」,將用於服務器上的所有Git活動(我假設這些是構建/自動化活動)。 –

+0

@EldadAK我不會堅持爲每個網站使用一個帳戶,只是當我使用不同的帳戶時,我覺得當我們需要在開發網站上進行編輯時遇到麻煩,看到你用不同的帳戶所有者和原始所有者不能再寫入它。我們也可能無法獲得所有本地網站。這是我們之前爲每個用戶完成的原因,可惜我不知道有什麼不同。 – Dekcolnu

回答

0

來源:Gitlab SSH Readme

部署鍵

部署鍵允許只讀到多個項目進入了一個SSH密鑰。

這對於將存儲庫克隆到持續集成(CI)服務器非常有用。通過使用部署密鑰,您不必設置虛擬用戶帳戶。

如果您是項目的主人或所有者,您可以在「部署密鑰」部分的項目設置中添加部署密鑰。按'新部署密鑰'按鈕並上傳公共SSH密鑰。在此之後,使用相應私鑰的機器對項目具有隻讀訪問權限。

您無法使用「新部署密鑰」選項兩次添加相同的部署密鑰。如果您想要將相同的密鑰添加到另一個項目中,請在列表中顯示'從可用項目部署密鑰'。您有權訪問的所有項目的所有部署密鑰都可用。此項目訪問可以通過作爲項目的直接成員或通過小組來實現。有關更多信息,請參閱app/models/user.rb中的def accessible_deploy_keys。

部署密鑰可以在項目之間共享,您只需將它們添加到每個項目。

+0

我怎麼從未見過這個? 我以root用戶身份創建了我的開發密鑰,並且假定這是標準位置,它被放置在/root/.ssh/id_rsa(.pub),但是,當我切換到例如該服務器上的user1以從存儲庫中提取時,GitLab似乎沒有看到它,或它不工作(要求git密碼,因爲它與試圖拉的沒有acces的帳戶) 我想我失去了一些東西。 我在這種方式,還沒有停留在GitLab上的很多用戶(因爲服務器上的用戶),如果我拉作爲一個不同的用戶,那麼另一個用戶不能編輯正確嗎? – Dekcolnu

+0

我建議你在部署環境中有一個用戶,我們稱他們爲'deploy',因爲創意命名很難。這就是使用ssh公鑰下拉代碼的單一責任(作爲所有相關項目的只讀部署密鑰添加)。然後,您可以讓該用戶在適當的任何位置將git clone或git pull(或您首選的部署方法)代碼發送到服務器,並讓每個應用程序都在特定於該應用程序的用戶下運行。 – jmuise

+0

感謝您的解釋。這可能是我很沒經驗,這可能是一個愚蠢的問題。用戶「部署」如何訪問「user1」或任何其他用戶的文件,因爲它不是根?另外,如果我以該用戶在該開發服務器上「部署」的方式提取,則該網站中的文件(以前由用戶1擁有)現在將由用戶部署,這意味着網站的所有者(用戶1)不能編輯該文件現在,情況有時會發生在我們身上。 – Dekcolnu