usar tools para official curso como boxes virtual-machine virtualbox packaging vagrant

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:

  1. 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 .
  2. 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:

  1. 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.
  2. 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:

VeeWee

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):

https://github.com/puppetlabs/puppet-vagrant-boxes



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.