¿Hay alguna manera de usar VirtualBox sin usar su registro de recursos?

2

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?

Catskul
fuente
2
¿Qué quieres decir exactamente con registrarte?
Ramhound
Los comandos de virtualbox generalmente requieren un nombre (no un nombre de archivo) que aparentemente se resuelve mediante el registro de virtuabox.
Catskul
Del mismo modo, la mayoría de los comandos para crear recursos tienen un interruptor '-register', o una forma de registrar el recurso para que se resuelva su nombre.
Catskul
¿Cuál es el sistema operativo host? ¿Por qué estás en contra de usar el -registerinterruptor?
Ramhound
El sistema operativo del host es Linux, pero los conceptos son los mismos en todos los hosts a menos que me equivoque. Me gustaría evitar el registro por los motivos enumerados en la pregunta. Mi caso de uso específico no es importante, pero lo agregaré a la pregunta con fines ilustrativos.
Catskul

Respuestas:

0

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.

Catskul
fuente
0

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 chrootpara 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).

usuario331584
fuente