2011-09-27 100 views
27

我有一個Vagrant系統已啓動並正在運行,我希望對其進行更改,只需更改其中一個轉發規則即可。在正在運行的系統上更改Vagrant端口轉發

this page

轉發端口像任何其他 配置期間vagrant up施加。但是,如果您已經有一個正在運行的系統,則撥打 vagrant reload將應用它們,而無需重新導入並重新構建 的一切。

請注意,轉發端口需要重新啓動虛擬機,因爲 VirtualBox在轉發的端口上不會啓動,直到它完全重新啓動 。

聽起來完全像我想要的!但如果我嘗試vagrant reload所有的廚師食譜都重新加載,並且整個過程需要大約半小時,我必須去廚房拿第n杯咖啡。

有沒有辦法在運行的系統上應用Vagrantfile更改,而無需通過整個配置過程?我不能喝那麼多咖啡。

回答

38

您是否嘗試過使用VirtualBox用戶界面手動添加新的端口轉發規則?打開VirtualBox並選擇正在運行的VM,然後點擊設置 - >網絡 - >端口轉發並添加新規則,例如,轉發127.0.0.1:222310.0.2.15:22。這樣做後,我能夠連接到我的虛擬機端口2222(按照慣例)和2223(新規則)。

當然,您可以同時將此新規則添加到您的Vagrantfile以確保映射在最終重新啓動後變爲永久。另外,如果您的虛擬機配置需要這麼長時間,您是否考慮過將一些廚師/傀儡步驟移到實際的基本框中?例如,也許你正在安裝一些服務器軟件,需要一段時間才能安裝。使用已安裝的軟件重新包裝盒子可以大大減少您的Vagrant啓動時間。

希望這會有所幫助!

+1

謝謝bro,極其簡單快速的應用解決方案 –

+3

對於任何人閱讀,awongh的下一個答案可能就是你正在尋找的。 – marios

+0

是的,雖然虛擬機重啓可能不是想要的。 (當我寫上述答案時,2011年該命令不存在!) – DuffJ

12

你可以做

流浪漢重裝--no-提供

,它應該沒有廚師,木偶運行等

儘管它仍然會重新啓動VM的感覺像「但如果你有一個已經運行的系統......」可能有點誤導。

+0

重新啓動虛擬機是個問題,儘管速度稍快 – TimoSolo