Pregunta

Actualmente estoy trabajando en un producto del lado del servidor que es un poco complejo de implementar en un nuevo servidor, lo que lo convierte en un candidato ideal para realizar pruebas en una máquina virtual. Ya estamos usando Hudson como nuestro sistema de CI, y realmente me gustaría poder implementar una imagen de máquina virtual con el software más reciente y mejor como un artefacto de construcción.

Entonces, ¿cómo hace uno para hacer esto exactamente? ¿Qué software de VM se recomienda para este propósito? ¿Cuánto se necesita hacer scripting para lograr esto? ¿Hay algún problema en particular al usar Windows 2003 Server como sistema operativo aquí?

¿Fue útil?

Solución

Lamento denegar a todos una respuesta aceptada aquí, pero en base a más investigaciones (¡gracias a sus respuestas!), encontré una mejor solución y quise resumir lo que encontré.

Primero, tanto VirtualBox como VMWare Server son excelentes productos, y como ambos son gratuitos, vale la pena evaluar cada uno. Hemos decidido apostar por VMWare Server, ya que es un producto más establecido y podemos obtener asistencia si lo necesitamos. Esto es especialmente importante ya que también estamos considerando la distribución de nuestro software a los clientes como una máquina virtual en lugar de una instalación de servidor especial, suponiendo que la sobrecarga del VMWare Player no es demasiado alta. Además, hay una interfaz de scripts de VMWare llamada VIX que se puede usar directamente instale los archivos en la máquina virtual sin necesidad de instalar SSH o SFTP, lo que es una gran ventaja.

Nuestra solución es básicamente la siguiente: primero creamos una " vainilla " Imagen de VM con SO, nada más, y verifíquela en el repositorio. Luego, escribimos un script que actúa como nuestro instalador, colocando los artefactos creados por Hudson en la máquina virtual. Esta secuencia de comandos debe tener interfaces para copiar archivos directamente, a través de SFTP y a través de VIX. Esto nos permitirá continuar distribuyendo software directamente en la máquina de destino o a través de una máquina virtual de nuestra elección. Esta imagen resultante se comprime y distribuye como un artefacto del servidor de CI.

Otros consejos

Independientemente del software de la VM (también puedo recomendar VirtualBox), creo que está considerando el siguiente escenario:

  1. La construcción está hecha
  2. CI lanza una máquina virtual (o siempre se está ejecutando)
  3. CI usa scp / sftp para cargar la compilación en la máquina virtual a través de la red
  4. CI utiliza el ssh (si está disponible en el sistema operativo de destino que se ejecuta en la VM) u otra función de ejecución remota de comandos para activar la instalación en el entorno de la VM

VMWare Server es gratuito y un producto muy estable. También le brinda la posibilidad de crear instantáneas de la división de VM y revertir a la versión anterior de su máquina virtual cuando sea necesario. Funcionará bien en Win 2003.

En términos de aprovisionamiento de nuevos segmentos de VM para sus compilaciones, simplemente puede copiar y pegar la carpeta que contiene los archivos de VMWare, cambiar el SID y la IP de la nueva VM y tendrá una nueva máquina. Tarda 15 minutos dependiendo del tamaño de su segmento de VM. No se requieren scripts.

Si usas VirtualBox, querrás ver cómo ejecutarlo sin cabeza, ya que estará en tu servidor. Normalmente, VirtualBox se ejecuta como una aplicación de escritorio, pero es posible iniciar máquinas virtuales desde la línea de comandos y acceder a la máquina virtual a través de RDP.

VBoxManage startvm "Windows 2003 Server" -type vrdp

Estamos utilizando Jenkins + Vagrant + Chef para este escenario.

Para que puedas hacer el siguiente proceso:

  • Controle la versión de su entorno de máquina virtual con los scripts de aprovisionamiento vagrant (Chef o Puppet)

  • Construye tu sistema usando Jenkins / Hudson

  • Ejecute su secuencia de comandos Vagrant para obtener la última versión estable de la salida de CI

  • Guarde el estado de la máquina virtual para volver a utilizarlo en el futuro.

Referencia:

vagrantup.com

Recomiendo VirtualBox . Es gratis y tiene una interfaz de programación bien definida, aunque personalmente no la he usado en situaciones de compilación automatizada.

La elección de VMWare actualmente NO es una mala elección.

Sin embargo, Al igual que VMWare brinda soporte para el servidor VMWare, SUN brinda soporte para VirtualBOX.

También puede realizar esta tarea utilizando VMWare Studio, que también es gratuito. El flujo de trabajo básico es este: 1. Crea un archivo XML que describa tu máquina virtual 2. Usa studio para crear el shell. 3. Utilice el servidor VMWare para aprovisionar la máquina virtual.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top