Cambiar el reenvío de puertos Vagrant en un sistema en ejecución


Tengo un sistema Vagrant en funcionamiento y quiero aplicarle un cambio que es tan poco como cambiar una de las reglas de reenvío.

De esta página:

Los puertos reenviados se aplican durante vagrant up como cualquier otro configuración. Pero si ya tiene un sistema en ejecución, llame vagrant reload los aplicará sin volver a importar y reconstruir todo.

Tenga en cuenta que el reenvío de puertos requiere un reinicio de la máquina virtual desde VirtualBox no recoja los puertos reenviados hasta que esté completamente reiniciar.

Suena exactamente como lo que quiero! Pero si intento un vagrant reload todas mis recetas de chef se recargan y ya que el proceso completo toma aproximadamente media hora, tengo que ir a la cocina y tomar la enésima taza de café.

¿Hay alguna forma de aplicar los cambios de Vagrantfile en un sistema en ejecución sin pasar por todo el proceso de aprovisionamiento? No puedo beber tanto café.

Author: Roberto Aloi, 2011-09-27

2 answers

¿Ha intentado usar la interfaz de usuario de VirtualBox para agregar manualmente la nueva regla de reenvío de puertos? Abra VirtualBox y seleccione la máquina virtual en ejecución, luego presione Configuración->Red->Reenvío de puertos y agregue la nueva regla a, por ejemplo, reenviar 127.0.0.1:2223 a 10.0.2.15:22. Después de hacer esto, pude conectarme a mi VM en los puertos 2222 (como de costumbre) y 2223 (la nueva regla).

Naturalmente, debería agregar esta nueva regla a su Vagrantfile al mismo tiempo para asegurarse de que la asignación sea permanente después de el eventual reinicio.

Además, si su aprovisionamiento de VM tarda tanto, ¿ha considerado mover algunos de los pasos de chef/puppet al cuadro base real? Por ejemplo, tal vez esté instalando un montón de software de servidor que tarda un tiempo en instalarse. Volver a empaquetar la caja con este software ya instalado podría reducir drásticamente su tiempo de inicio Vagrant.

Espero que esto ayude!

 39
Author: DuffJ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-02 09:05:41

Puedes hacer

Vagrant reload no no-provision

Y debería funcionar sin chef, puppet, etc.

Aunque todavía reiniciará la vm - se siente como "Pero si ya tiene un sistema en ejecución..."es tal vez un poco engañoso.

 13
Author: awongh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-11-05 10:49:11