20 votos

Creación de una VM de Ubuntu para distribuir

Soy un TA para un curso de programación y la tarea de crear una imagen de la máquina virtual basada en Ubuntu 14.04 LTS con todo el software necesario (para el desarrollo de C ++ y Python) preinstalado de tal manera que los estudiantes tienen el mismo sistema virtual que se ejecuta y evitar las luchas de conseguir todo para trabajar en una variedad de diferentes máquinas y sistemas operativos. Tenemos la intención de utilizar Virtual Box como el software de la máquina virtual de acogida, ya que es libre y disponible en todas las plataformas.

Ingenuamente, me limitaría a utilizar la imagen de disco de Ubuntu 14.04 LTS, ejecutarla en mi Virtual Box, instalarla en el disco duro virtual (VDI), configurar una cuenta de "estudiante" con una contraseña predefinida, instalar todo el software necesario, apagar la máquina virtual y distribuir el archivo VDI. Pedimos a cada estudiante que importe la VDI a Virtual Box, la ejecute y configure su cuenta personal (o simplemente utilice la cuenta de estudiante por defecto).

  • ¿Es viable el procedimiento anterior?
  • ¿Cuáles son las dificultades que hay que tener en cuenta? Necesitamos que esto sea más o menos a prueba de tontos. Esperamos a más de 80 estudiantes y sólo somos cuatro asistentes técnicos, así que no podemos ofrecer apoyo individual.
  • ¿Existen desventajas al utilizar un disco duro virtual de tipo VDI asignado dinámicamente?
  • ¿Está bien que instale las Guest Additions de Virtual Box desde el principio o hace algo específico para el host?
  • ¿Hay una manera más elegante de manejar la creación de cuentas de usuario? Idealmente, Ubuntu los pondría a través de un asistente de creación de cuentas y les haría establecer sus contraseñas (así como añadirlas al archivo sudoers) la primera vez que boot la imagen. Aunque esto no es una prioridad. Supongo que tener una cuenta por defecto está bien.

18voto

Fazer87 Puntos 5749

Aunque esta pregunta se basa en cierta medida en la opinión:

Sí, este procedimiento es viable - creo que lograría lo que buscas y es algo que he hecho en el pasado con otras distribuciones de linux.

El único escollo real es el espacio en disco... asegúrese de que las máquinas de sus alumnos tienen suficiente espacio en disco para manejar el tamaño del disco virtual. Además, asegúrese de mantener una copia fuera de línea en al menos una máquina para que pueda utilizar el disco de plantilla/referencia para recrear rápidamente un disco cuando un estudiante mate su máquina.

Las desventajas de un disco dinámico es que el sistema operativo anfitrión tiene que seguir asignando más y más espacio en el disco a medida que la VM crece con datos/actualizaciones. Esto tiene una sobrecarga de rendimiento que puede ser un dolor de cabeza a veces - especialmente si se está ejecutando en una VM de baja potencia (la potencia de la máquina anfitriona menos la potencia que se utiliza para expandir un disco tiende a hacer que las VMs se retrasen un poco). también hace potencialmente inportante (no todas las máquinas en su laboratorio pueden tener 100GB + una vez que un estudiante ha jugado con su VM).

Los complementos para huéspedes no son específicos de la máquina son más bien un conjunto de controladores. Cuando importas la VM a un nuevo host, los drivers de la VM detectan y ajustan tu hardware para que funcione en el nuevo host.

Creación de usuario elegante - no estoy seguro, tal vez un script que se ejecuta en el primer lanzamiento y pide a un usuario crear una nueva cuenta antes de que el script se autodestruya? Investigaré un poco y te contestaré cuando tenga 5 minutos libres.

Espero que esto ayude al menos en parte.

13voto

Joel B Puntos 392

Respondiendo exactamente a tu pregunta, si necesitas adaptar la VM y entregarles una VM de VirtualBox entregable, te recomiendo usar Empaquetador para preempaquetar la máquina virtual con todas las dependencias necesarias. Está construido precisamente para este propósito y le permite girar un imagen de una ISO El sistema de gestión de la información de VirtualBox, realiza cualquier aprovisionamiento que desee contra esa imagen, y luego crea una imagen de VM de VirtualBox entregable. Esto es bueno para ti también porque documenta exactamente lo que se hizo al entregable en caso de que alguna vez quieras reproducirlo/añadirle algo. Además, puedes comprobar el proyecto en un sistema de control de fuentes y hacer cambios. He aquí un ejemplo de que se haga para empezar.

Sin embargo, si quieres que se pongan en marcha rápidamente, te recomiendo que utilices Vagante y distribuyendo a sus alumnos un Vagrantfile que realiza el aprovisionamiento deseado que usted requiere en un imagen estándar de Ubuntu . Esto tiene varias ventajas:

  • Vagrant funciona con VirtualBox y se encargará de todas las partes difíciles para los estudiantes, como la configuración de carpetas compartidas para que puedan copiar archivos fácilmente entre la VM y la máquina anfitriona, la configuración de la red para permitir el acceso a Internet a la caja para ellos, etc. Esto también te ahorra el tiempo de tener que documentar/depurar los problemas de configuración de VirtualBox para ellos.
  • Un Vagrantfile es mucho más pequeño que una VM entregable. Si quieres cambiar/añadir algo a la VM a mitad del curso no tienes que reconstruir una nueva VM, simplemente dales un Vagrantfile actualizado.
  • Si estropean algo más allá de su capacidad para repararlo, pueden destruir/reinstalar la máquina virtual sin problemas
  • Un Vagrantfile mostrará a sus estudiantes exactamente lo que se hizo a la VM para que cuando lleguen al punto en que entiendan lo suficiente, puedan ver lo que está pasando bajo el capó y posiblemente aprender de eso también.

Aquí está un ejemplo de Vagrantfile mostrando cómo hacer algo de aprovisionamiento en una imagen de Ubuntu 14.04.

9voto

Tonny Puntos 6881

Perfectamente factible. La alternativa sería Vagrant, Puppet, Chef o algo similar para construir las máquinas virtuales desde cero, pero eso es mucho trabajo de configuración.

El equipo de desarrollo de uno de mis sitios hace lo mismo para que los nuevos desarrolladores se pongan en marcha rápidamente.
1 cuenta preestablecida (con derechos sudo) en la imagen y un breve documento de instrucciones con los pasos que deben seguir para crear su propia cuenta personal.

Por favor, tenga en cuenta que lo más probable es que necesite acceso a la red/internet dentro de la VM. Esto puede ser un puente o NAT en el host. Independientemente de lo que elijas, tendrás que instruir a tus alumnos sobre cómo configurar el lado del host. Simplemente configure el NIC dentro de la VM como dispositivo DHCP. Este es un punto de partida seguro para la mayoría de las configuraciones, incluso si el usuario tiene que configurar manualmente una dirección IP estática.
Poner una dirección IP estática en la VM es realmente buscarse problemas. Es probable que ya esté en uso por otra máquina virtual que se conecte en la misma LAN...

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: