2011-09-27 10 views
27

Ho un sistema Vagrant attivo e funzionante e voglio applicare una modifica ad esso, che è tanto piccolo quanto cambiare una delle regole di inoltro.Modifica del port forwarding Vagrant su un sistema in esecuzione

Da this page:

porte inoltrati vengono applicate durante vagrant up come qualsiasi altra configurazione . Ma se hai già un sistema in esecuzione, chiamando vagrant reload le applicherai senza reimportare e ricostruire tutto .

Nota che le porte di inoltro richiedono un riavvio della macchina virtuale poiché VirtualBox non rileverà sulle porte inoltrate finché non sarà completamente riavviato .

Suoni esattamente come quello che voglio! Ma se provo un vagrant reload tutte le mie ricette dello Chef sono ricaricate e poiché l'intero processo dura circa mezz'ora, devo andare in cucina e prendere l'ennesima tazza di caffè.

C'è un modo per applicare le modifiche di Vagrantfile su un sistema in esecuzione senza passare attraverso l'intero processo di provisioning? Non posso bere così tanto caffè.

risposta

38

Hai provato a utilizzare l'interfaccia utente di VirtualBox per aggiungere manualmente la nuova regola di port forwarding? Apri VirtualBox e seleziona la VM in esecuzione, quindi tocca Impostazioni-> Rete-> Port Forwarding e aggiungi la nuova regola, ad esempio, inoltra 127.0.0.1:2223 a 10.0.2.15:22. Dopo averlo fatto, sono riuscito a collegarmi alla mia VM sulle porte 2222 (come al solito) e 2223 (la nuova regola).

Naturalmente, aggiungere questa nuova regola allo Vagrantfile allo stesso tempo per garantire che il mapping diventi permanente dopo l'eventuale riavvio.

Inoltre, se il provisioning della VM impiega così tanto tempo, hai considerato di spostare alcuni dei passaggi di chef/fantoccio nella casella di base effettiva? Ad esempio, forse stai installando un gruppo di software server che richiede un po 'di tempo per l'installazione. Il riconfezionamento della scatola con questo software già installato potrebbe ridurre drasticamente il tempo di avvio di Vagrant.

Spero che questo aiuti!

+1

Grazie bro, soluzione estremamente semplice e veloce applicata –

+3

Per chi legge, la prossima risposta di awongh potrebbe essere quello che stai cercando. – marios

+0

Sì, anche se il riavvio della VM potrebbe non essere quello che si desidera. (E questo comando non esisteva nel 2011 quando ho scritto la risposta di cui sopra!) – DuffJ

12

si può fare

reload vagabondo --no-fornitura

e dovrebbe funzionare senza cuoco, burattino, ecc

anche se sarà ancora riavviare il vm- sente come "Ma se hai un sistema già in esecuzione ..." è forse un po 'fuorviante.

+0

Riavviare la VM è il problema anche se un po 'più veloce – TimoSolo