Resumen
VirtualBox parece querer que todo esté "registrado", lo que hace que sea mucho más molesto trabajar con él en la línea de comandos.
Estoy intentando crear un script automatizado que creará, moverá, iniciará, detendrá y destruirá máquinas virtuales y discos virtuales. Requerir el registro complicará la tarea por las siguientes razones.
- deja información de estado que puede causar casos impredecibles que causan fallas en los scripts.
- crea posibles colisiones de espacio de nombres para múltiples procesos que crean máquinas virtuales con el mismo nombre
- mover / copiar recursos en la misma máquina es más complicado porque las referencias en el registro deben actualizarse
- copiar recursos (combinación de disco + vm) a otra máquina requiere reconfiguración una vez que llegan a su máquina de destino, y requiere la transferencia de metadatos adicionales para realizar la reconfiguración.
- Si algo falla inesperadamente y, por lo tanto, no se puede registrar, la información de configuración sobrante puede causar problemas en ejecuciones posteriores.
Caso de uso
Mi caso de uso específico es para un servidor de integración continua que crea y destruye VM e imágenes de disco potencialmente con el mismo nombre, y requeriría más lógica para lidiar con el estado del registro.
Ejemplo imaginario
Parece que debería poder, por ejemplo (usando algunos comandos imaginarios y / o incorrectos):
mkdir foobar
customdiskimg_script ./foo/foo.vdi
vboxmanage createvm --name "foo" --ostype Linux --basefolder ./foo/foo.xml
vboxmanage storagectl ./foo/foo.xml --name foo --add ide
vboxmanage storageattach --storagectl foo --medium ./foo/foo.vdi ./foo/foo.xml
vboxmanage startvm ./foo/foo.xml
TLDR
¿Hay alguna manera de usar virtualbox sin "registrar" discos duros y máquinas virtuales?
linux
virtualbox
virtual-machine
Catskul
fuente
fuente
-register
interruptor?Respuestas:
No.
Después de mirar el código fuente, por lo que puedo decir, buscar solo puede suceder por el nombre que requiere el registro.
Parecería que si hubiera una manera de cambiar la ruta del directorio de configuración de virtualbox a algo personalizado, sería posible aproximar el efecto que estaba buscando, pero eso tampoco parece ser posible.
fuente
Como está en Linux, existen herramientas de sistema operativo host que pueden usarse para crear un entorno virtual temporal para limitar la comunicación de VirtualBox entre procesos. Específicamente, puede usar
chroot
para crear un entorno mínimo que contenga solo el mínimo necesario para que se ejecute VirtualBox, junto con un nuevo directorio de inicio para su usuario, y luego ejecutar VirtualBox en ese entorno. Si bien no lo he intentado, supongo que esto aislaría los procesos entre sí y, por lo tanto, resolvería su problema.(Desafortunadamente, he llegado a esta pregunta buscando una respuesta a este mismo problema para un host de Windows, donde tal solución no sería posible. Oh, bueno).
fuente