2008-10-06 10 views
10

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 probar en una VM. Ya usamos Hudson como nuestro sistema de CI, y realmente me gustaría poder implementar una imagen de máquina virtual con el último y más grande software como artefacto de construcción.¿Crear una imagen de máquina virtual como un artefacto de integración continua?

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

+0

creo "envasador" Vale la pena mencionar aquí. "Packer es una herramienta de código abierto para crear imágenes de máquina idénticas para múltiples plataformas desde una única configuración de origen". https://www.thoughtworks.com/radar/techniques/machine-image-as-a-build-artifact https://www.packer.io/intro/index.html –

Respuesta

7

Lo sentimos negar a nadie una respuesta aceptada aquí, pero sobre la base de una mayor investigación (gracias a sus respuestas!), He encontrado una solución mejor y quería resumir lo que he encontrado.

En primer lugar, tanto VirtualBox como VMWare Server son excelentes productos, y dado que ambos son gratuitos, vale la pena evaluarlos. Decidimos ir con VMWare Server, ya que es un producto más consolidado y podemos obtener asistencia si lo necesitamos. Esto es especialmente importante ya que también estamos considerando distribuir nuestro software a los clientes como una máquina virtual en lugar de una instalación especial del servidor, suponiendo que la sobrecarga del reproductor VMWare no sea demasiado alta. Además, hay un VMWare scripting interface llamado VIX que se puede usar para instalar directamente los archivos en la máquina virtual sin necesidad de instalar SSH o SFTP, lo cual es una gran ventaja.

Nuestra solución es básicamente la siguiente ... primero creamos una imagen VM "vanilla" con sistema operativo, nada más, y lo registramos en el repositorio. Luego, escribimos un script que actúa como nuestro instalador, colocando los artefactos creados por Hudson en la VM. 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 VM de nuestra elección. Esta imagen resultante se comprime y distribuye como artefacto del servidor de CI.

+0

El servidor VMWare llegó al final de la vida en 2011. VMware Player es la nueva oferta gratuita que reemplaza al servidor VMWare. –

0

Recomendaría VirtualBox. Es gratis y tiene una interfaz de programación bien definida, aunque no la he usado personalmente en situaciones de construcción automatizadas.

1

Independientemente del software de máquina virtual (puedo recomendar VirtualBox, también) Creo que usted está buscando en el siguiente escenario:

  1. construcción se realiza
  2. CI lanza máquina virtual (o que siempre está en funcionamiento)
  3. CI utiliza SCP/SFTP para subir a construir en VM través de la red
  4. CI usa el ssh (si está disponible en el sistema operativo de destino que ejecuta en VM) u otro centro de ejecución remota de comandos para activar la instalación en el entorno de máquina virtual
1

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

En términos de suministro de nuevas divisiones de VM para sus compilaciones, puede simplemente copiar y pasar la carpeta que contiene los archivos VMWare, cambiar el SID e IP de la nueva máquina virtual y tiene una nueva máquina. Toma 15 minutos dependiendo del tamaño de su segmento VM. No se requiere scripting

1

Si usa VirtualBox, querrá considerar el funcionamiento sin cabeza, ya que estará en su 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 
0

Elegir VMWare actualmente no es una mala opción.

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

+0

Vi que VirtualBox fue patrocinado por Sun, pero cuando vas al sitio web, lo más parecido a una página de soporte es el foro de la comunidad. No creo que esto sea exactamente lo mismo que VMWare, que obviamente está más dedicado a este producto específico. –

0

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

1

Estamos utilizando Jenkins + Vagrant + Chef para este escenario.

lo que puede hacer el siguiente proceso:

  • El control de versiones de su entorno de máquina virtual mediante scripts de aprovisionamiento vagabundos (chef o marionetas)

  • construir su sistema usando Jenkins/Hudson

  • Ejecute su script Vagrant para recuperar la última versión estable de la salida CI

  • Sav e el estado de VM para reutilizar en el futuro.

Referencia:

vagrantup.com

Cuestiones relacionadas