¿Cómo reiniciar automáticamente Jenkins para los trabajos de Maven en git?

Tenemos muchos modules Maven repartidos en varias sucursales en varios repositorys git, y hemos encontrado que la configuration manual de Jenkins para cada uno de estos trabajos es tediosa y propensa a errores.

Por lo tanto, estoy buscando la manera de automatizar nuestra installation de Jenkins, y para hacerla reproducible, quiero comenzar con el WAR no configurado tal como se descargó del sitio de Jenkins, realizar la configuration necesaria y luego crear trabajos basados ​​en descripciones de un lenguaje específico del dominio adecuado. Este process debe ser completamente automatizado y robusto, preferentemente a través del CLI jar.

Hasta ahora he llegado a los siguientes problemas:

  • Jenkins no conoce las versiones de Maven ni tiene instalado Git Client de fábrica.
  • El conocimiento se descarga desde el sitio de actualización, que es activado por Javascript en el browser cuando se dirige al sitio /manage . Entonces puedo instalar el plugin git desde el centro de actualizaciones.
  • La configuration de "Quiero maven 3.0.4 y simplemente descárguelo" debe hacerse a través de la página web de configuration. No he encontrado un command CLI adecuado para hacer lo mismo.

Después de hacerlo manualmente, podría usar el command CLI create-job con un file de configuration XML adecuado para hacer el rest de lo que necesito.

Entonces, ¿cómo puedo automatizar estos pasos? No tener que orquestar un browser compatible con Javascript sería bueno. La plataforma es un Ubuntu 12.04 sin cabeza con OpenJDK.

Para crear trabajos usando un DSL, eche un vistazo al plugin Job DSL . Puede activar la ejecución del trabajo inicial que crea los trabajos de compilation a través de la CLI.

Algo a considerar es que cada uno de los complementos en jenkins-ci.org tiene un enlace simbólico "más reciente":

https://updates.jenkins-ci.org/latest/git.hpi , la "última" guerra de jenkins y el último plugin de maven se pueden download fácilmente.

  • Cree un directory para JENKINS_HOME, agregue varios complementos directamente desde el centro de actualizaciones al directory de complementos creados.
  • Agregue files conf.xml directamente para configurar versiones JDK / MAVEN pnetworkingeterminadas
  • Comience jenkins con set de variables JENKINS_HOME

El flujo de trabajo de nuestra compañía para configurar Jenkins usa Capistrano para instalar Java, Ruby, Tomcat y jenkins.war, un set de plugins requeridos y un proxy Apache vhost en frente de Jenkins. Es fácilmente una receta de Chef, pero bastante factible sin Ruby.