2013-11-27 43 views
0

我正在爲工作中的項目設置Vagrant + Puppet。我們使用Composer來管理我們所有的依賴關係。一個項目具有我們創建的存儲在私有GitHub存儲庫中的依賴關係。Vagrant + Puppet:無法運行與私有存儲庫的作曲家安裝

我已經設置了一切與流浪者&傀儡。它安裝適當版本的PHP,下載並安裝Composer,並嘗試運行Composer。我說'嘗試',因爲「作曲家安裝」步驟永遠不會工作 - 我們必須使用'vagrant ssh'進入機器,並且自己運行「作曲家安裝」。

我已經在Vagrantfile中啓用了SSH代理轉發功能。

有什麼特別的我需要做的,讓Puppet作爲一個可以訪問克隆GitHub存儲庫所需的SSH密鑰的用戶來運行?我寧願沒有Vagrant將密鑰複製到虛擬機(或安裝特定目錄),因爲這可能不適用於所有主機操作系統(我們確實有幾個人在Windows計算機上開發,「〜/ .ssh」將不會在那裏工作 - 我認爲)。

有關如何解決此問題的任何想法?

回答

1

如果在使用composer進行安裝時,SSH密鑰對於計算機不可用,並且您無法提供其他方式來提供憑據以訪問該存儲庫,那麼它將不起作用。

我不認爲你的「不將密鑰複製到機器中」的說法是有效的,因爲你確實控制了虛擬機內的操作系統。你可以在那裏放置一個可用的SSH密鑰。

查看通過HTTPS,部署密鑰或計算機用戶進行的OAuth訪問:https://help.github.com/articles/managing-deploy-keys我認爲部署密鑰是Composer使用的方式。

+0

由於沒有複製密鑰,這也是由於SSH密鑰可能不在同一個地方,甚至在不同的開發人員機器或環境中命名相同。 Linux上的DevA適用於OSX上的DevB或Windows上的DevC。 –

+0

您應該在只讀模式下輸入一個適用於每個開發人員的密鑰(如果您擔心密鑰會丟失並且有人可能會將錯誤提交推送到您的存儲庫中)以使Composer工作。您不應該嘗試在機器上找到開發人員的個人密鑰。你可以讓每個開發人員給Vagrant個人SSH密鑰並使用它,這樣每個人都可以決定手動登錄,或者自動完成任務。 – Sven

+0

即使你需要有個人密鑰,你也應該讓開發者把他們的私鑰放在與'Vagrantfile'相同的目錄下 - 這應該很容易實施,並且可以通過'/ vagrant/yourkey'訪問密鑰。 。 – xiankai