2010-11-11 13 views
9

Se me ha encomendado la tarea de configurar un entorno de desarrollo basado en Java en varias máquinas con Windows. El problema es que quiero que el proceso se realice de forma automática y sencilla en cada máquina, de modo que los desarrolladores no tengan que perder tiempo descargando e instalando todas las diferentes aplicaciones. Idealmente, me gustaría tener la siguiente:¿Cómo configurar automáticamente un entorno de desarrollo?

  • automatizado e inicial desatendido instala
  • algún tipo de monitor en aquellas instalaciones que harían que los ajustes se mantienen constantes entre todas las máquinas
  • Una posibilidad para empujar nuevas configuraciones/programas/actualizaciones cuando sea necesario.

He examinado varias herramientas para el trabajo. Actualmente el más prometedor parece ser Puppet. Sin embargo, Puppet no funciona tan bien en Windows ... El uso de una imagen de VM resolvería el primer requisito, pero está fuera de lugar ya que el hardware es diferente en todas las máquinas y las actualizaciones no serán fáciles.

¿Alguien ha tenido alguna experiencia con este tipo de tarea? ¿Cómo lo resolverías?

+0

Quizás le guste la idea de usar Dropbox (o análogo) para esto: puede compartir el software de esta manera, y menos intrusivo que las instalaciones desatendidas. Por ejemplo, comparto Eclipse de esta manera entre varios cuadernos. –

+0

Acabo de ver [esta presentación] (https://speakerdeck.com/u/wfarr/p/the-setup-managing-an-army-of-laptops-with-puppet) ("The Setup") de GitHub. Crean entornos de desarrollo con algo de magia Ruby y Puppet. – Nadav

Respuesta

1

Creo que esto es una pérdida de tiempo. No estoy seguro de cuál es el valor comercial aquí. La mayoría de los desarrolladores están frustrados con este tipo de procesos (incluido yo).

De todos modos, Yoxos proporciona este tipo de aprovisionamiento de entorno de desarrollo basado en la plataforma eclipse. Puede crear una plantilla para su empresa que luego se puede compartir entre los equipos.

0

Una opción interesante podría ser estandarizar en el Eclipse IDE más un conjunto de complementos (SCM, pruebas, desarrollo J2EE, etc.) y usar el mecanismo de actualización de Eclipse para implementar una configuración idéntica en cada máquina. Las dependencias, la sincronización y similares serían manejados automáticamente por la plataforma Eclipse.

Puede que esto no funcione para usted si necesita algunas herramientas específicas que no están disponibles en el ecosistema Eclipse, pero mi entorno de desarrollo personal es 100% basado en Eclipse, por lo que es posible hacerlo funcionar.

0

Java se puede instalar de manera global fácilmente. Para Windows, el administrador del sistema debe extraer el archivo MSI incrustado en el ejecutable de instalación de Java JRE. Para Ubuntu, ssh in y tenga instalado el módulo sun-java6-jdk.

Luego, Eclipse solo tiene que enviar una distribución descomprimida a los usuarios.

0

A la mayoría de los desarrolladores les gusta personalizar sus configuraciones, por lo que no estoy seguro de que esto sea popular. Podrías ir a la vanguardia y buscarles instancias en la nube (¡una vez que hayas configurado correctamente puedes clonar!).

1

La funcionalidad más interesante es extraer información de las máquinas de desarrollo. El entorno de desarrollo cambia, y diferentes desarrolladores prueban cosas nuevas/programas/configuraciones a un ritmo que es difícil de mantener si no está automatizado. Solo tener una configuración (el modelo centralizado) mata su capacidad de responder al cambio. Sin embargo, es importante entender las diferencias entre las configuraciones.

0

1) Use una imagen de disco.

o

2) Poner todo (Eclipse ejecutable, etc.) en el SVN (o algún otro repositorio de código fuente). Entonces solo tienen que instalar SVN y finalizar la compra.

4

He estado jugando con Vagrant durante un par de semanas y me parece una herramienta fantástica para esto. Utiliza Puppet, Chef o un "aprovisionador" de clientes en la parte superior de un VirtualBox, y se controla con un simple comando. Tienen un gran tutorial/recorrido que te mostrará de lo que es capaz.

Como ejemplo, la dirección que he estado dirigiendo esta semana es escribir guiones/módulos Puppet para configurar mi servidor de producción, y todas las partes dinámicas son manejadas por clases parametrizadas. Por lo tanto, mi entorno de desarrollo tendrá el mismo sistema operativo, la misma configuración de firewall, los mismos daemons, etc., todo sin afectar el sistema operativo de mi host ni realizar ningún paso de configuración manual.

Dicho esto, no lo he usado en el día a día, así que no sé si hay problemas de bloqueo, pero he utilizado VirtualBox administrado manualmente para el mismo propósito sin problemas, por lo que No preveo ningún problema.

Cuestiones relacionadas