Cómo instalar Jenkins en Windows Server 2012

13

Esto puede sonar como una pregunta trivial, pero esto es lo que está sucediendo:

  1. Tomo la última versión de Jenkins como instalador nativo para Windows (1.491 en mi caso)
  2. Configuré un Windows Server 2012 (imagen de lanzamiento oficial, sin candidato de lanzamiento) e instalo todas las actualizaciones
  3. Intento ejecutar la instalación de Jenkins.

Todo funciona bien en el proceso de instalación, excepto la parte en la que intenta iniciar el servicio. En este punto me informan que no tengo suficientes privilegios para iniciar los servicios del sistema. Esto ha estado funcionando en 2k8R2 sin ningún problema. He iniciado sesión como Administrador, que se creó durante la instalación del servidor y es el único usuario en la máquina.

El mensaje completo que recibo es:

El servicio 'Jenkins' (Jenkins) no pudo iniciarse. Verifique que tenga privilegios suficientes para iniciar los servicios del sistema.

¿Alguien más está teniendo estos problemas? Supongo que las partes internas de Server 2012 han cambiado la forma de la instalación y el instalador de Jenkins no está diseñado para eso.

Si alguien puede decirme a qué grupo tengo que agregar el administrador, o puede darme una solución para este problema, esto será de gran ayuda.

Hámster
fuente

Respuestas:

13

Necesita instalar .net 3.5 (incluso si tiene instalado .net 4+)

Lo haces a través del Administrador del servidor:

  • Configurar servidor local
  • Agregar roles y características
  • Haga clic en Siguiente hasta llegar a la sección de características
  • Marque la casilla de verificación .net 3.5 (también verifiqué los elementos secundarios para una buena medida)
  • Si recibe una advertencia sobre la necesidad de especificar una ruta alternativa, entonces:
    • Inserte sus medios de instalación de Windows.
    • Haga clic en Especificar una ruta de origen alternativa
    • Ponga D: \ sources \ sxs en el campo de ruta (haga clic en Aceptar)
  • Haga clic en instalar

Una vez que haya hecho esto, debería poder instalar Jenkins a través del instalador msi. Ahora podrá iniciar con éxito el servicio Jenkins.

Creo que Jenkins intenta instalar .net 3.5, pero debido a que faltaba el medio de instalación, se cuelga (ya que se está ejecutando en segundo plano) y es por eso que realmente se agota el tiempo de espera

DarcyThomas
fuente
No sé por qué, pero .NET Framework 3.5 parece ser el único requisito que falta ... Gracias por esta pista, eso está solucionando el problema original
HaMster
3

¡Lo hice finalmente!

No solo necesitaba instalar .NET 3.5 (Gracias DarcyThomas) sino que también descubrí que también necesitaba agregar un archivo de configuración al directorio de instalación.

Agregue un archivo llamado jenkins.exe.config con los siguientes contenidos al directorio de instalación:

<configuration> 
  <runtime> 
     <generatePublisherEvidence enabled="false"/> 
  </runtime> 
</configuration> 

Resulta que al iniciar el servicio, Windows intenta acceder a Internet para descargar un certificado para confirmar el firmante del ejecutable. Entonces, en mi caso donde el servidor no tiene acceso a Internet, falla. Encontré la solución aquí .

Espero que esto ahorre a todos los demás las horas de dolor que acabo de pasar. Salud.

Ben Cull
fuente
¿Qué edición de Windows Server 2012 estaba ejecutando? Nunca tuve que hacer eso en mi edición estándar.
HaMster
Centro de datos de Windows Server 2012: aunque pensé que era principalmente nuestra arquitectura de red la que rompía las cosas en lugar de la edición en sí.
Ben Cull
2

Encontré una solución basada en esta respuesta de Jan El problema es que Windows está buscando el certificado para el servicio y su servidor no tiene acceso a Internet. Su mejor opción es habilitar el acceso de Internet al servidor para la instalación de Jenkins. No lo necesitará una vez que Jenkins esté instalado.

También podría intentar deshabilitar la comprobación de certificados de esta manera (aunque no estoy seguro de si esto funcionará).

1) Crear el directorio: C:\Program Files (x86)\Jenkins

2) Crear un archivo de texto llamado jenkins.exe.config

3) Agregue el siguiente texto al archivo de texto:

<configuration> 
  <runtime> 
     <generatePublisherEvidence enabled="false"/> 
  </runtime> 
</configuration>

4) Ejecute la configuración como Administrator

Serj Sagan
fuente
Realmente no deberías publicar enlaces, ¿qué tal si solo copia y pega tu otra respuesta aquí?
BenjiWiebe
Ok ... esto está hecho
Serj Sagan
2
Copiar / pegar respuestas generalmente se desaconseja si no se obtienen / citan correctamente (cae bajo plagio).
cenizas999
0

Cree una tarea programada de Windows que se ejecute una vez que Windows solo se inicie, en su lugar. Bajo algunas distribuciones de Windows, ejecutar Jenkins como un servicio simplemente no funciona de inmediato. Este enfoque es un truco, pero funciona. Lo he usado en múltiples nodos de Windows.

Personalmente, creo que los documentos de Jenkins en Windows necesitan más pulido a este respecto. Quizás un poco más de trabajo en esto también ...

Espero que esto ayude.

Carlspring
fuente
Pensé en lo mismo y lo manejo de esta manera ahora. Sin embargo, quiero darles a algunos chicos nuevos sobre el tema una introducción rápida y sería bueno si Jenkins estuviera trabajando. Supongo que los haré conscientes de este problema o me involucraré yo mismo. Pero gracias por la pista.
HaMster
Por favor, escriba de nuevo, si se encuentra una mejor solución, o si finalmente logra que arreglen esto. Tuve que vivir con esto durante más de dos años en mi trabajo anterior y fue molesto. El instalador JNLP realmente no funciona de fábrica en muchos casos (este es uno de ellos). Creo que en lugar de tratar de usar las estúpidas DLL-s de Windows, les gustaría ... invocar un script de línea de comandos que lo agregue como un servicio o cree un trabajo programado. Creo que esto debería ser bastante fácil.
carlspring el
Nunca tuve ningún problema con el instalador nativo en Windows que se proporciona en la placa de descarga en Jenkins-Homepage . La primera vez que no terminé la instalación con éxito fue en el caso descrito anteriormente, incluso si lo intenté varias veces con diferentes escenarios. Entonces, como dije, supongo que este es un problema específico de Server 2012
HaMster,
Oh, he visto esto en Windows Server 2008 cada vez. Sin lugar a duda.
carlspring
Es un servidor Windows que no tiene problemas de acceso a Internet
Serj Sagan