tareas sonar programar integrar integracion continua configurar con java jenkins continuous-integration virtual-server

java - programar - integrar sonar con jenkins



¿Cómo configurar un nuevo esclavo Jenkins? (2)

Agregar un esclavo en Jenkins es bastante simple. Básicamente, si está utilizando un esclavo Unix, necesita acceso SSH a la máquina. También necesitas tener instalado el plugin Jenkins SSH Slaves . Una vez que tenga eso, vaya a la opción Administrar Jenkins en su Maestro y elija Administrar Nodos .

Los pasos son entonces:

  1. Haga clic en Nuevo nodo
  2. Seleccione Dumb Slave y asígnele un nombre (simbólico, no necesita ser el nombre de dominio, que viene más adelante)
  3. Haga clic en OK y pase a la página de configuración.
  4. Complete el número de ejecutores con el número de procesos simultáneos que desea ejecutar en ese nodo (generalmente no más que el número de núcleos de CPU asignados)
  5. Complete la Raíz del FS remoto con la ruta completa donde desea que Jenkins almacene sus archivos de trabajo
  6. Opcionalmente, agregue etiquetas si está usando las de su sistema (no es necesario en muchos casos, pero sus Proyectos pueden requerir que los nodos tengan ciertas etiquetas en el grupo de ejecutores para trabajos específicos)
  7. Seleccione Iniciar agentes esclavos en máquinas Unix a través de SSH en Método de inicio (si no está ya seleccionado)
  8. Ponga el nombre de dominio completo en el campo Host que aparece debajo de la línea Método de lanzamiento

Hay algunas suposiciones sobre las herramientas que están instaladas en el esclavo. Si tiene herramientas especializadas, es posible que deba instalarlas por separado (o ver los complementos que manejan las herramientas en movimiento inmediatamente antes de la ejecución). Sin embargo, si sus nodos están construidos a partir de una plantilla que tiene todas sus herramientas de compilación (java, ant, etc. en su caso probablemente), entonces esto será todo lo que necesita hacer para que todo funcione.

Recientemente, heredé un proyecto Java impulsado por Jenkins en el que el desarrollador principal simplemente subió y salió. Había implementado el WAR de Jenkins en una instancia de Tomcat en un servidor virtual, y eso es lo que se consideraba el "servidor de compilación".

Este servidor de compilación tenía un esclavo configurado para compilar e implementar en myserver.example.com , otro servidor virtual. Durante el fin de semana, el personal de sistemas retiró el servidor físico en el que vivía virtual myserver.example.com , produciendo la siguiente excepción para cualquier trabajo de Jenkins configurado para implementarse en ese esclavo:

Cuando hago clic en el enlace " Ver registro para obtener más detalles ", veo el siguiente resultado de la consola:

[03/18/13 08:13:31] [SSH] Opening SSH connection to myserver.example.com:22. java.io.IOException: There was a problem while connecting to myserver.example.com:22 at com.trilead.ssh2.Connection.connect(Connection.java:755) at com.trilead.ssh2.Connection.connect(Connection.java:546) at hudson.plugins.sshslaves.SSHLauncher.openConnection(SSHLauncher.java:650) at hudson.plugins.sshslaves.SSHLauncher.launch(SSHLauncher.java:283) at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:200) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: java.net.NoRouteToHostException: No route to host at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529) at com.trilead.ssh2.transport.TransportManager.establishConnection(TransportManager.java:342) at com.trilead.ssh2.transport.TransportManager.initialize(TransportManager.java:450) at com.trilead.ssh2.Connection.connect(Connection.java:699) ... 9 more [03/18/13 08:13:34] [SSH] Connection closed.

Esto tiene sentido, ya que el esclavo ( myserver.example.com virtual) está fuera de línea. Sin embargo, al no tener una experiencia previa real con Jenkins, no estoy seguro de cuáles son los pasos adecuados para configurar el maestro Jenkins para crear / implementar estos trabajos en un nuevo esclavo y cómo configurar el nuevo esclavo. Por ejemplo, ¿necesito instalar algo en el nuevo esclavo o hacer algún tipo de configuración / configuración? ¡Gracias por adelantado!


Encontré el mismo problema que tuvo usted, en mi caso esto fue porque no había instalado un servidor ssh en Ubuntu.