virtual-machine - para - vagrant tools
¿Cómo empaco una máquina virtual existente que no se creó con el comando vagrant up? (9)
paquete vagabundo --output box_name.box --base "vm machine name" --vagrantfile Vagrantfile
Asegúrese de que el reenvío de puerto y las claves SSH estén configuradas correctamente.
Este puede ser un buen ejemplo: https://github.com/okfn/ckan/wiki/How-to-Create-a-CentOS-Vagrant-Base-Box
Instalé un VirtualBox y luego instalé un sistema operativo Ubuntu 12.10 Server Base en él. He instalado todo tipo de paquetes de php y otros paquetes en él. Mis amigos me recomendaron usar Vagrant para poder compartir mi configuración con mis compañeros de equipo fácilmente.
Debido a que mi VirtualBox VM actual no se creó usando vagrant up
, no estoy seguro de cómo empacarla. La documentation de Vagrant habla sobre el embalaje, pero comienza diciendo:
Antes de seguir con el resto de esta página, asegúrese de que el entorno virtual se crea ejecutando vagabundo.
En mi caso, mi VM existente NO se creó inicialmente usando vagrant up.
¿Cómo empaco mi VM existente?
Como se menciona aquí - http://sysadm.pp.ua/linux/sistemy-virtualizacii/vagrant-box-creation.html Necesita tres cosas para que la caja sea importada y empacada:
- Instalar adiciones de invitados
- Sudo sin contraseña
- Acceso SSH Así que solo necesita iniciar sesión en su Ubuntu 12.10, instalar adiciones de Vbox Guest, agregar el usuario "vagabundo" con acceso sudo sin contraseña.
Cualquier VirtualBox se puede empaquetar en cajas base Vagrant (básicamente OVA con un Vagrantfile
).
Los problemas son : la máquina virtual no está construida según los cuadros base vagabundos, si no la está compartiendo en vagrantbox.es, estará bien.
Simplemente instale vagabundo (vía gema o el instalador), ejecute el siguiente comando en la carpeta VM para empaquetarlo en .box
NOTA : Para Vagrant 1.2.x, el método de instalación recomendado es el uso del paquete específico del sistema operativo. Ruby Gem NO está disponible para 1.2.x.
vagrant package --base ubuntu --output /path/to/ubuntu.box
Recuerde, si desea compartir la caja base errante con otras personas, mejor leer los documentos y seguir esas reglas para que sea más fácil para los demás.
La guía de empaque en "Comenzar" a la que se refiere supone que ha comenzado desde una caja base vagabunda y la ha inicializado con vagabundo, lo que no ha hecho. Esto le permite empaquetar cualquier personalización que haya realizado en una caja base vagabunda.
Si comienza desde cero o desde una VirtualBox
VM "simple", como lo hace, debe crear una caja base vagabunda. Deberías estar bien siguiendo la guía, que está basada en Ubuntu.
Lo importante es darse cuenta (y los documentos vagabundos no son demasiado claros sobre eso) es que hay dos "sabores" de embalaje:
- La documentation que se refiere asume que comenzó desde una caja base vagabunda y la inicializó con
vagrant up
, lo que no ha hecho. Esto le permite empaquetar cualquier personalización que haya realizado en una caja base vagabunda . - Si comienza desde cero o desde una VirtualBox VM "simple", como lo hace, debe crear una caja base vagabunda . Deberías estar bien siguiendo la guía , que está basada en Ubuntu.
Hay una guía detallada para crear cajas vagas desde cero utilizando Oracle Enterprise Linux, que podría ser útil. También VeeWee probar VeeWee .
Alternativamente, podría comenzar con una caja base Ubuntu 12.10 y portar sus personalizaciones, en cuyo caso podría usar la primera forma de empaquetado más simple.
Actualizar
Lo anterior se refiere a Vagrant 1.0. Las cosas han cambiado ligeramente en 1.1 y, en particular, los documentos han sido reescritos:
- El command
vagrant package
permite empaquetar cualquier personalización que haya realizado en un cuadro base vagabundo existente de la misma manera que en 1.0. - La documentación para crear cuadros base con VirtualBox se ha eliminado en 1.1, pero los docs sugieren que el proceso no ha cambiado, pero ahora se necesita un archivo
metadata.json
adicional, ya que Vagrant 1.1 es compatible con múltiples proveedores .
Mire la documentación actualizada para encontrar todas las características que debería tener su caja si quiere que funcione perfectamente con vagabundo:
http://docs.vagrantup.com/v2/virtualbox/boxes.html
También deberías echarle un vistazo a un gran proyecto llamado veewee, que te permite escribir la secuencia de la caja de vagabundos de scractch. Significa que veewee realmente descargará el ISO de su distribución e lo instalará en una máquina virtual virgen y luego configurará e instalará todas las dependencias.
Viene con muchas recetas para todo tipo de distribución de Linux:
Aquí viene aún más cajas. Dicen que son cajas de marionetas pero trabajan con todos los proveedores (chef, títere y guión de shell):
Personalmente, el aspecto ilusorio del proceso de empaquetado fue el cambio de base. Sospecho que podría ser el caso con mucha gente. Consulte el vagrant package --help
para la descripción. La documentación tampoco parece mencionarlo.
Encontré estas dos guías grandes, detalladas y paso a paso para crear cajas Vagrant de máquinas que originalmente eran máquinas VirtualBox:
Si bien no es una respuesta completa, creo que puede obtener lo que necesita de la documentación, que es bastante extensa. Creo que vagrant up
es simplemente un medio conveniente para configurar una "caja" de Vagabundo. Hay una serie de requisitos para que una caja sea compatible con Vagrant. Se describen aquí ...
Documentación: vagabundo - Cajas de base
Los huesos desnudos necesarios para una caja son los siguientes ...
- VirtualBox Guest Additions para carpetas compartidas, reenvío de puertos, etc.
- SSH con soporte de autenticación basado en clave para el usuario vagabundo
- Ruby & RubyGems para instalar Chef y Puppet
- Chef y Puppet para el aprovisionamiento de soporte
Una vez que una caja cumple con estos requisitos, simplemente debe ser una cuestión de usar el comando de vagrant package
para crear una instalación portátil ...
Más documentación: Vagabundo - Cajas
Por lo tanto, aunque no tengo una respuesta completa, ya que nunca lo he hecho de esta manera, creo que es posible llevar su instalación a un estado que le permita empaquetarla y distribuirla.
Use el comando ''VBoxManage list vms''. Lo usé con sudo solo para ver que no había un VMS en la lista. Por lo tanto, use el comando con el usuario autenticado correcto. Las respuestas anteriores también ayudaron a crear el cuadro.