vagrantup software imagenes create app ubuntu vagrant boot

ubuntu - software - vagrant up



Iniciar Vagrant VM en el arranque del host (4)

Soy nuevo en vagrant y he configurado un par de vm vagantes que utilizo para fines de desarrollo y prueba. Mi problema es que no puedo hacer que estos cuadros se inicien automáticamente en mi máquina (Ubuntu). Es realmente molesto ir a la carpeta y vagrant up cada máquina cada vez que mi máquina host se inicia.

He intentado agregar un cronjob que parece cd path/to/vm/folder && vagrant up pero esto no parece estar funcionando.

También probé un cronjob para VBoxManage pero VBoxManage cambia el nombre de la VM (en lugar del número / versión ''vmname_version'') cada vez que la VM arranca.


Aquí hay un script de inicio que se encuentra en http://uhowto.urbylog.info/post/54097294891/an-upstart-script-to-launch-vagrant-box-automatically

Una secuencia de comandos de inicio rápido para iniciar vagrant box de forma automática A veces puede ser necesario iniciar máquinas virtuales erráticas automáticamente en el arranque del host. Del mismo modo, proporcionar un apagado correcto para un invitado cuando el host se apaga o reinicia. A continuación se muestra un ejemplo de un script de inicio para iniciar / detener un cuadro errante en nombre del usuario randomjoe. Cambie el nombre de usuario y el directorio Vagrantfile en el script a continuación. Nombre su archivo de configuración upstart descriptivamente. Cree un archivo /etc/init/*.conf para cada Vagrantfile que necesita para iniciar el sistema. /etc/init/vagrant-precise32.conf:

description "Start vagrant precise32 box on system startup" author "uHOWTO" env VAGRANTUSR=randomjoe env VAGRANTBOXPATH=/home/randomjoe/vagrantboxes/precise32 start on stopped rc stop on runlevel [016] pre-start script cd ${VAGRANTBOXPATH} su -c "/usr/bin/vagrant up" ${VAGRANTUSR} end script post-stop script cd ${VAGRANTBOXPATH} su -c "/usr/bin/vagrant halt" ${VAGRANTUSR} end script


El trabajo de Cron no encaja en este caso de uso, es para trabajos programados.

Como está ejecutando Ubuntu como host, recomiendo usar /etc/rc.local , coloque los comandos en el script rc.local que se ejecuta al final del proceso de inicio.

Se verá así

#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. cd /path/to/vagrant_vm1 && vagrant up cd /path/to/vagrant_vm2 && vagrant up exit 0

NOTA : Habrá conflictos de puertos en el host si inicia más de 1 cajas de Vagrant con el mismo modo de red: NAT (predeterminado), que de forma predeterminada usa la misma regla de reenvío de puertos => invitado 22 al host 2222.

Si necesita iniciar más de 1 recuadros (NAT), considere usar una red pública (puenteada) o use VBoxManage controlvm para iniciar las máquinas virtuales, consulte la respuesta en Dos máquinas Vagrant separadas, Windows Host, PuTTY: ¿cómo?


He terminado con un simple trabajo cron. Tuve que dormir, de lo contrario, Virtualbox se quejó de que no se había inicializado correctamente.

@reboot cd /home/myuser/VMs/VagrantBox && sleep 20; /bin/su -c "/usr/bin/vagrant up" myuser


Terminé clonando las VboxManage con VboxManage y simplemente utilizando VBoxManage startvm $vm --type headless en un script init.d