Guía completa de Jenkins

Jenkins es una poderosa aplicación que permite la integración continua y la entrega continua de proyectos, independientemente de la plataforma en la que esté trabajando. 

Es una fuente gratuita que puede manejar cualquier tipo de compilación o integración continua. Puede integrar Jenkins con varias tecnologías de prueba e implementación. En este tutorial, explicaremos cómo puede utilizar Jenkins para crear y probar sus proyectos de software continuamente.

¿Por qué Jenkins?

Jenkins es un software que permite la integración continua. Jenkins se instalará en un servidor donde se llevará a cabo la compilación central. 

Junto con Jenkins, a veces, también se puede ver la asociación de Hudson. Hudson es una herramienta de integración continua basada en Java de código abierto muy popular desarrollada por Sun Microsystems que luego fue adquirida por Oracle. Después de la adquisición de Sun por parte de Oracle, se creó una bifurcación a partir del código fuente de Hudson, lo que provocó la introducción de Jenkins.

¿Qué es la integración continua?

La integración continua es una práctica de desarrollo que requiere que los desarrolladores integren el código en un repositorio compartido a intervalos regulares. Este concepto estaba destinado a eliminar el problema de encontrar problemas posteriores en el ciclo de vida de la compilación. La integración continua requiere que los desarrolladores realicen compilaciones frecuentes. La práctica común es que cada vez que se produce una confirmación de código, se debe activar una compilación.

Requisitos del sistema

  • JDK 1.5 o superior
  • Memoria 2 GB de RAM (recomendado)
  • Espacio del disco: Sin requisito mínimo. Tenga en cuenta que, dado que todas las compilaciones se almacenarán en las máquinas Jenkins, se debe garantizar que hay suficiente espacio en disco disponible para el almacenamiento de compilación.
  • Versión del sistema operativo: Jenkins se puede instalar en Windows, Ubuntu/Debian, Red Hat/Fedora/CentOS, Mac OS X, openSUSE, FReeBSD, OpenBSD, Gentoo o Docker o AWS
  • Contenedor Java: El archivo WAR se puede ejecutar en cualquier contenedor que admita Servlet 2.4/JSP 2.0 o posterior (un ejemplo es Tomcat 5).

Instalación de Jenkins

Descargar Jenkins

Acceder al sitio web oficial de Jenkins. Si hace clic en el enlace proporcionado, puede obtener la página de inicio del sitio web oficial de Jenkins como se muestra a continuación.


De forma predeterminada, la versión más reciente y la versión de soporte a largo plazo estarán disponibles para descargar. Las versiones anteriores también están disponibles para descargar. Haga clic en la pestaña Versión de soporte a largo plazo en la sección de descargas.

Haga clic en el enlace "Versión anterior pero estable" para descargar el archivo war de Jenkins.


Iniciando Jenkins

Abra el símbolo del sistema. Desde el símbolo del sistema, busque el directorio donde está presente el archivo jenkins.war. Ejecute el siguiente comando

D:\>Java –jar Jenkins.war


Después de ejecutar el comando, se ejecutarán varias tareas, una de las cuales es la extracción del archivo war que realiza un servidor web integrado llamado winstone.

D:\>Java –jar Jenkins.war


Ejecutando desde: D:\jenkins.war Webroot: $user.home/ .jenkins


Una vez que el procesamiento se complete sin errores importantes, aparecerá la siguiente línea en la salida del símbolo del sistema.

INFORMACIÓN: Jenkins está completamente en funcionamiento


Accediendo a Jenkins

Una vez que Jenkins esté en funcionamiento, se puede acceder a Jenkins desde el enlace:

http://localhost:8080

Este enlace abrirá el panel de Jenkins.


Configuración de Tomcat

Se deben cumplir los siguientes requisitos previos para la configuración de Jenkins Tomcat.

Paso 1: verificar la instalación de Java

Para verificar la instalación de Java, abra la consola y ejecute el siguiente comando de Java.

  • Windows -Abrir consola de comando: \>java –version
  • Linux - Abrir terminal de comando: $java –version

Si Java se ha instalado correctamente en su sistema, debería obtener uno de los siguientes resultados, dependiendo de la plataforma en la que esté trabajando.


Windows:

  • Versión de Java "1.7.0_60"
  • Entorno de tiempo de ejecución Java (TM) SE (compilación 1.7.0_60-b19)
  • VM de servidor Java Hotspot (TM) de 64 bits (compilación 24.60-b09, modo mixto)

Linux:

  • versión de Java "1.7.0_25"
  • Abra el entorno de ejecución JDK (rhel-2.3.10.4.el6_4-x86_64) Abra la máquina virtual del servidor JDK de 64 bits (compilación 23.7-b01, modo mixto)

Asumimos que tienes Java 1.7.0_60 instalado en su sistema antes de continuar con este tutorial. En caso de que no tengas Java JDK, puedes descargarlo desde el enlace: https://www.java.com/es/

Paso 2: verificar la instalación de Java

Configure la variable de entorno JAVA_HOME para que apunte a la ubicación del directorio base donde está instalado Java en su máquina. Por ejemplo,

  • Windows: Establezca la variable ambiental JAVA_HOME en C:\ProgramFiles\java\jdk1.7.0_60
  • Linux: Exportar JAVA_HOME=/usr/local/java-current

 Agregue la ruta completa de la ubicación del compilador de Java a la ruta del sistema.

  • Windows: Agregue la cadena; C:\Program Files\Java\jdk1.7.0_60\bin hasta el final de la variable del sistema PATH.
  • Linux: exportar RUTA=$RUTA:$JAVA_HOME/bin/

Verifique el comando java-version desde el símbolo del sistema como se explicó anteriormente.

Paso 3: descargue Tomcat

El sitio web oficial de Tomcat es: https://tomcat.apache.org/. Si hace clic en el enlace proporcionado, podrá acceder a la página de inicio del sitio web oficial de Tomcat como se muestra a continuación.

Navega hasta el enlace: https://tomcat.apache.org/download-70.cgi para obtener la descarga de Tomcat.

  1. Vaya a la sección 'Distribuciones binarias'. 
  2. Descargue Windows de 32 bits. 
  3. Luego descomprima el contenido del archivo zip descargado.

Paso 4: Configuración de Jenkins y Tomcat

Copie el archivo Jenkis.war que descargó de la sección anterior y cópielo a la carpeta webapps en la carpeta tomcat.

Ahora abra el símbolo del sistema. Desde el símbolo del sistema, busque el directorio donde se encuentra la carpeta tomcat7. Busque el directorio bin en esta carpeta y ejecute el archivo start.bat

E:\Aplicaciones\tomcat7\bin>startup.bat


Una vez que el procesamiento se complete sin errores importantes, aparecerá la siguiente línea en la salida del símbolo del sistema.

INFORMACIÓN: Inicio del servidor en 1302 ms


Abra el navegador y vaya al enlace: http://localhost:8080/jenkins. Jenkins estará funcionando en Tomcat.

Configuración de Git

Para este ejercicio, debe asegurarse de que haya conectividad a Internet en la máquina en la que está instalado Jenkins. En su Panel de Jenkins (pantalla de inicio), haga clic en la opción Administrar Jenkins en el lado izquierdo.

En la siguiente pantalla, haga clic en la opción 'Administrar complementos'. 

En la siguiente pantalla, haga clic en la pestaña Disponible. Esta pestaña proporcionará una lista de complementos que están disponibles para descargar. En la pestaña 'Filtro' escriba 'Complemento Git'

Luego se filtrará la lista. Marque la opción Git Plugin y haga clic en el botón 'Instalar sin reiniciar' 

Una vez que se completen todas las instalaciones, reinicie Jenkins emitiendo el siguiente comando en el navegador. http://localhost:8080/jenkins/restart

Después de reiniciar Jenkins, Git estará disponible como opción mientras se configuran los trabajos. Para verificar, haga clic en Nuevo elemento en las opciones del menú de Jenkins. Luego ingrese un nombre para un trabajo; en el siguiente caso, el nombre ingresado es 'Demo'. Seleccione 'Proyecto de estilo libre' como tipo de elemento. Haga clic en el botón Aceptar.

En la siguiente pantalla, si navega a la sección Administración de código fuente, verá "Git" como una opción.


Configuración de Maven

Paso 1: descargar y configurar Maven

El sitio web oficial de maven es: https://maven.apache.org/. Si hace clic en el enlace proporcionado, puede obtener la página de inicio del sitio web oficial de Maven como se muestra a continuación. 

Mientras navega por el sitio, vaya a la sección Archivos y descargue el enlace al archivo Binary.zip.

Una vez descargado el archivo, extraiga los archivos a la carpeta de la aplicación correspondiente. Para ello, los archivos maven se colocarán en E:\Apps\apache-maven-3.3.3.

Paso 2: configurar Jenkins y Maven

En el panel de Jenkins (pantalla de inicio), haga clic en Administrar Jenkins en el menú del lado izquierdo.

Luego, haga clic en 'Configurar sistema' en el lado derecho.

En la pantalla Configurar sistema, desplácese hacia abajo hasta que vea la sección Maven y luego haga clic en el botón "Agregar Maven".

Desmarque la opción 'Instalar automáticamente'. 

Agregue cualquier nombre para la configuración y la ubicación de MAVEN_HOME. Luego, haga clic en el botón 'Guardar' al final de la pantalla. 

Ahora puede crear un trabajo con la opción 'Proyecto Maven'. En el panel de Jenkins, haga clic en la opción Nuevo elemento. 

 

Configuración

A continuación se muestran las diversas opciones de configuración en Jenkins. Por lo tanto, se pueden obtener las diversas opciones de configuración para Jenkins haciendo clic en la opción 'Administrar Jenkins' en el menú de la izquierda.

Luego se le presentará la siguiente pantalla:

Haga clic en Configurar sistema. A continuación se analizan algunos de los ajustes de configuración de Jenkins que se pueden realizar.

Directorio de inicio de Jenkins

Jenkins necesita algo de espacio en disco para realizar compilaciones y conservar archivos. Se puede comprobar esta ubicación desde la pantalla de configuración de Jenkins. De forma predeterminada, está configurado en ~/.jenkins, y esta ubicación se almacenará inicialmente dentro de la ubicación de su perfil de usuario. En un entorno adecuado, debe cambiar esta ubicación a una ubicación adecuada para almacenar todas las compilaciones y archivos relevantes. Una vez puede hacer esto de las siguientes maneras.

  1. Establezca la variable de entorno "JENKINS_HOME" en el nuevo directorio de inicio antes de iniciar el contenedor de servlets.
  2. Establezca la propiedad del sistema "JENKINS_HOME" en el contenedor de servlets.
  3. Establezca la entrada del entorno JNDI "JENKINS_HOME" en el nuevo directorio.

El siguiente ejemplo utilizará la primera opción para configurar la variable de entorno "JENKINS_HOME".

Primero cree una nueva carpeta E:\Apps\Jenkins. Copie todo el contenido del existente.

~/.jenkins a este nuevo directorio.

Configure la variable de entorno JENKINS_HOME para que apunte a la ubicación del directorio base donde está instalado Java en su máquina. Por ejemplo,

  1. Windows: Establezca la variable ambiental JENKINS_HOME en la ubicación que desee. Como ejemplo, puede configurarlo en E:\Apps\Jenkins
  2. Linux: export JENKINS_HOME =/usr/local/Jenkins o la ubicación que desee.

En el panel de Jenkins, haga clic en Administrar Jenkins en el menú del lado izquierdo. Luego haga clic en 'Configurar sistema' en el lado derecho.

En el directorio de inicio, ahora verá el nuevo directorio que se ha configurado. 

 # de ejecutores

Esto se refiere al número total de ejecuciones de trabajos simultáneas que pueden tener lugar en la máquina Jenkins. Esto se puede cambiar según los requisitos. A veces, la recomendación es mantener este número igual que el número de CPU de las máquinas para obtener un mejor rendimiento.

Variables de entorno

Esto se utiliza para agregar variables de entorno personalizadas que se aplicarán a todos los trabajos. Estos son pares clave-valor y se puede acceder a ellos y utilizarlos en compilaciones cuando sea necesario.

URL de Jenkins

De forma predeterminada, la URL de Jenkins apunta a localhost. Si tiene un nombre de dominio configurado para su máquina, configúrelo en el nombre de dominio; de lo contrario, sobrescriba localhost con la IP de la máquina. Esto ayudará a configurar esclavos y al enviar enlaces mediante el correo electrónico, ya que puede acceder directamente a la URL de Jenkins utilizando la variable de entorno JENKINS_URL a la que se puede acceder como ${JENKINS_URL}.

Notificación de correo electrónico

En el área de notificación de correo electrónico, puede configurar los ajustes SMTP para enviar correos electrónicos. Esto es necesario para que Jenkins se conecte al servidor de correo SMTP y envíe correos electrónicos a la lista de destinatarios.

Gestión

Para administrar Jenkins, haga clic en la opción 'Administrar Jenkins' en el menú del lado izquierdo.

Por lo tanto, se pueden obtener las diversas opciones de configuración para Jenkins haciendo clic en la opción 'Administrar Jenkins' en el menú de la izquierda.

Luego se le presentará la siguiente pantalla: 

Algunas de las opciones de gestión son las siguientes:

Configurar el sistema

Aquí es donde se pueden administrar las rutas a las distintas herramientas que se utilizarán en las compilaciones, como los JDK, las versiones de Ant y Maven, así como las opciones de seguridad, los servidores de correo electrónico y otros detalles de configuración de todo el sistema. Cuando se instalan complementos. Jenkins agregará los campos de configuración requeridos dinámicamente después de instalar los complementos.

Recargar la configuración desde el disco

Jenkins almacena todo su sistema y crea detalles de configuración del trabajo como archivos XML que se almacenan en el directorio de inicio de Jenkins. Aquí también se almacena todo el historial de compilación. Si está migrando trabajos de compilación de una instancia de Jenkins a otra, o archivando trabajos de compilación antiguos, deberá agregar o eliminar los directorios de trabajos de compilación correspondientes al directorio de compilaciones de Jenkins. No es necesario desconectar Jenkins para hacer esto; simplemente puede usar la opción "Recargar configuración desde disco" para recargar el sistema Jenkins y crear configuraciones de trabajo directamente.

Administrar complemento

Aquí se puede instalar una amplia variedad de complementos de terceros directamente desde diferentes herramientas de administración de código fuente, como Git, Mercurial o ClearCase, hasta informes de métricas de cobertura y calidad del código. Los complementos se pueden instalar, actualizar y eliminar a través de la pantalla Administrar complementos.

Información del sistema

Esta pantalla muestra una lista de todas las propiedades actuales del sistema Java y las variables de entorno del sistema. Aquí se puede comprobar exactamente qué versión de Java Jenkins se está ejecutando, con qué usuario se está ejecutando, etc.

La siguiente captura de pantalla muestra parte de la información de nombre-valor disponible en esta sección.

Registro del sistema

La pantalla Registro del sistema es una forma conveniente de ver los archivos de registro de Jenkins en tiempo real. Nuevamente, el uso principal de esta pantalla es la resolución de problemas.

Estadísticas de carga

Esta página muestra datos gráficos sobre qué tan ocupada está la instancia de Jenkins en términos de la cantidad de compilaciones simultáneas y la longitud de la cola de compilación, lo que da una idea de cuánto tiempo deben esperar sus compilaciones antes de ejecutarse. Estas estadísticas pueden dar una buena idea de si se requiere capacidad adicional o nodos de construcción adicionales desde una perspectiva de infraestructura.

Consola de secuencias de comandos

Esta pantalla le permite ejecutar scripts de Groovy en el servidor. Es útil para la resolución de problemas avanzada, ya que requiere un sólido conocimiento de la arquitectura interna de Jenkins.

Administrar nodos

Jenkins es capaz de manejar compilaciones paralelas y distribuidas. En esta pantalla, puede configurar cuántas compilaciones desea. Jenkins se ejecuta simultáneamente y, si utiliza compilaciones distribuidas, configure nodos de compilación. Un nodo de compilación es otra máquina que Jenkins puede usar para ejecutar sus compilaciones.

Prepárese para el cierre

Si es necesario cerrar Jenkins o el servidor en el que se ejecuta Jenkins, es mejor no hacerlo mientras se ejecuta una compilación. Para cerrar Jenkins limpiamente, puede utilizar el enlace Preparar para el apagado, que evita que se inicien nuevas compilaciones.

Con el tiempo, cuando todas las compilaciones actuales hayan finalizado, se podrá cerrar Jenkins limpiamente.

Configurar trabajos de construcción

Para este ejercicio, crearemos un trabajo en Jenkins que selecciona una aplicación HelloWorld simple, construye y ejecuta el programa Java.

Paso 1− Vaya al panel de Jenkins y haga clic en Nuevo elemento 

Paso 2− En la siguiente pantalla, ingrese el nombre del artículo, en este caso lo hemos llamado Helloworld. Elija la 'opción de proyecto de estilo libre'

Paso 3− Aparecerá la siguiente pantalla en la que podrá especificar los detalles del trabajo.

Etapa 4− Necesitamos especificar la ubicación de los archivos que deben crearse. En este ejemplo, asumiremos que se ha configurado un repositorio git local (E:\Program) que contiene un archivo 'HelloWorld.java'. Por lo tanto, desplácese hacia abajo y haga clic en la opción Git e ingrese la URL del repositorio local de git.

Nota− Si su repositorio está alojado en Github, también puede ingresar la URL de ese repositorio aquí. Además de esto, deberá hacer clic en el botón Agregar para obtener las credenciales y agregar un nombre de usuario y contraseña al repositorio de github para que el código pueda recogerse del repositorio remoto.

Paso 5− Ahora vaya a la sección Construir y haga clic en Agregar paso de compilación → Ejecutar comando por lotes de Windows 

Paso 6− En la ventana de comandos, ingrese los siguientes comandos y luego haga clic en el botón Guardar.

Javac 

HolaMundo.java Java 

HolaMundo

Paso 7− Una vez guardado, puede hacer clic en la opción Construir ahora para ver si ha definido correctamente el trabajo.

Paso 8− Una vez programada la compilación, se ejecutará. La siguiente sección Historial de compilación muestra que hay una compilación en progreso.

Paso 9− Una vez que se completa la compilación, el estado de la compilación mostrará si la compilación fue exitosa o no. En nuestro caso, la siguiente compilación se ejecutó con éxito. Haga clic en el número 1 en el historial de compilación para que aparezcan los detalles de la compilación.

Aparte de los pasos mostrados anteriormente, hay muchas formas de crear un trabajo de compilación y las opciones disponibles son muchas, lo que hace de Jenkins una herramienta de implementación continua tan fantástica.

Pruebas unitarias

Jenkins proporciona una funcionalidad lista para usar para Junit y proporciona una gran cantidad de complementos para pruebas unitarias para otras tecnologías, como por ejemplo MSTest para pruebas unitarias .Net. Si vas al enlace https://wiki.jenkins-ci.org/display/JENKINS/xUnit+Plugin le dará la lista de complementos de pruebas unitarias disponibles.

Ejemplo de una prueba Junit en Jenkins

El siguiente ejemplo considerará

  1. Una clase HelloWorldTest simple basada en Junit.
  2. Ant como herramienta de construcción dentro de Jenkins para construir la clase en consecuencia.

Paso 1− Vaya al panel de Jenkins, haga clic en el proyecto HelloWorld existente y elija la opción Configurar.

Paso 2− Vaya a la sección Agregar un paso de compilación y elija la opción Invocar Ant.

Paso 3− Haga clic en el botón Avanzado.

Etapa 4− En la sección del archivo de compilación, ingrese la ubicación del archivo build.xml.

Paso 5− Luego haga clic en la opción Agregar opción posterior a la compilación y elija la opción "Publicar informe de resultados de prueba de Junit".

Paso 6− En los informes XML de los informes de prueba, ingrese la ubicación como se muestra a continuación. Asegúrese de que Informes sea una carpeta creada en el espacio de trabajo del proyecto HelloWorld. El "*.xml" básicamente le dice a Jenkins que recoja los archivos xml de resultados que se producen al ejecutar los casos de prueba de Junit. Estos archivos xml se convierten en informes que se pueden ver más tarde.

Una vez hecho esto, haga clic en la opción Guardar al final.

Paso 7− Una vez guardado, puede hacer clic en la opción Construir ahora.

Una vez que se completa la compilación, un estado de la compilación mostrará si la compilación fue exitosa o no. En la información de salida de la compilación, ahora verá una sección adicional llamada Resultado de la prueba. En nuestro caso, ingresamos un caso de prueba negativo para que el resultado fallara solo como ejemplo.

Se puede ir a la salida de la Consola para ver más información. Pero lo que es más interesante es que si hace clic en Resultado de la prueba, ahora verá un desglose de los resultados de la prueba.

Pruebas automatizadas

Uno de los principios básicos de la integración continua es que una compilación debe ser verificable. Debe poder determinar objetivamente si una compilación en particular está lista para pasar a la siguiente etapa del proceso de compilación, y la forma más conveniente de hacerlo es utilizar pruebas automatizadas. Sin las pruebas automatizadas adecuadas, tendrá que conservar muchos artefactos de compilación y probarlos manualmente, lo que no está en consonancia con el espíritu de la integración continua. El siguiente ejemplo muestra cómo utilizar Selenium para ejecutar pruebas web automatizadas.

Paso 1− Vaya a Administrar complementos.

Paso 2− Busque el complemento Hudson Selenium y elija instalarlo. Reinicie la instancia de Jenkins.

Paso 3− Vaya a Configurar sistema.

Etapa 4− Configure el jar del servidor Selenium y haga clic en el botón Guardar.

Nota− El archivo jar de selenio se puede descargar desde la página de Selenium. Haga clic en la descarga del servidor independiente Selenium.

Paso 5− Regrese a su panel y haga clic en la opción Configurar para el proyecto HelloWorld.

Paso 6− Haga clic en Agregar paso de compilación y elija la opción “SeleniumHQ htmlSuite Run” 

Paso 7− Añadir los detalles necesarios para la prueba de selenio. Aquí el suiteFile es el TestSuite generado mediante el IDE de Selenium. Haga clic en Guardar y ejecute una compilación. Ahora la compilación posterior iniciará el controlador Selenium y ejecutará la prueba html.

Notificación

Jenkins viene con una función lista para usar para agregar una notificación por correo electrónico para un proyecto de compilación.

Paso 1− Configuración de un servidor SMTP. Vaya a Administrar Jenkins → Configurar sistema. Vaya a la sección de notificación por correo electrónico e ingrese el servidor SMTP requerido y los detalles del sufijo de correo electrónico del usuario.

Paso 2− Configure los destinatarios en el proyecto Jenkins: cuando configura cualquier proyecto de compilación de Jenkins, justo al final está la posibilidad de agregar destinatarios que recibirían notificaciones por correo electrónico en caso de compilaciones inestables o rotas. Luego haga clic en el botón Guardar.

Además del valor predeterminado, también hay complementos de notificación disponibles en el mercado. Un ejemplo es el complemento de notificación de Tikal Knowledge que permite enviar notificaciones de estado del trabajo en formatos JSON y XML. Este complemento permite configurar los puntos finales como se muestra a continuación.

Aquí están los detalles de cada opción:

  1. "Formato"− Este es el formato de carga útil de notificación que puede ser JSON o XML.
  2. "Protocolo"− protocolo a utilizar para enviar mensajes de notificación, HTTP, TCP o UDP.
  3. "Evento"− Los eventos de trabajo que activan notificaciones: Trabajo iniciado, Trabajo completado, Trabajo finalizado o Todos los eventos (la opción predeterminada).
  4. "URL"− URL a la que enviar notificaciones. Toma la forma de "http://host" para el protocolo HTTP, y"Puerto host"para protocolos TCP y UDP.
  5. "Se acabó el tiempo"− Tiempo de espera en milisegundos para enviar la solicitud de notificación, 30 segundos por defecto.

Informes

Como se demostró en la sección anterior, hay muchos complementos de informes disponibles, siendo los más simples los informes disponibles para las pruebas jUnit.

En la acción posterior a la compilación para cualquier trabajo, puede definir los informes que se crearán. Una vez completadas las compilaciones, la opción Resultados de la prueba estará disponible para profundizar más.

Análisis de código

Jenkins tiene una gran cantidad de complementos de análisis de código. Los diversos complementos se pueden encontrar en https://wiki.jenkins-ci.org/display/JENKINS/Static+Code+Analysis+Plugins

Este complemento proporciona utilidades para los complementos de análisis de código estático. Jenkins puede analizar el archivo de resultados de varias herramientas de análisis de código, como CheckStyle, FindBugs, PMD, etc. Para cada herramienta de análisis de código correspondiente, se debe instalar un complemento en Jenkins.

Además, el complemento adicional.Colector de análisis estático está disponible que combina los resultados individuales de estos complementos en una única vista y gráfico de tendencias.

Los complementos pueden proporcionar información como

  1. El número total de advertencias en un trabajo.
  2. Una muestra de las advertencias nuevas y fijas de una compilación.
  3. Informes de tendencias que muestran la cantidad de advertencias por compilación.
  4. Descripción general de las advertencias encontradas por módulo, paquete, categoría o tipo
  5. Informes detallados de las advertencias encontradas, opcionalmente filtrados por gravedad (o nuevos y corregidos).

Compilaciones distribuidas

A veces se requieren muchas máquinas de construcción si hay casos en los que hay proyectos más grandes y pesados que se construyen de forma regular. Y ejecutar todas estas compilaciones en una máquina central puede no ser la mejor opción. En tal escenario, se pueden configurar otras máquinas Jenkins para que sean máquinas esclavas para aliviar la carga del servidor maestro Jenkins.

A veces, es posible que también necesites varios entornos diferentes para probar tus compilaciones. En este caso, utilizar un esclavo para representar cada uno de los entornos requeridos es casi imprescindible.

Un esclavo es una computadora que está configurada para descargar proyectos de compilación del maestro y una vez configurada, esta distribución de tareas es bastante automática. El comportamiento exacto de la delegación depende de la configuración de cada proyecto; algunos proyectos pueden optar por "pegarse" a una máquina en particular para una compilación, mientras que otros pueden optar por moverse libremente entre esclavos.

Dado que cada esclavo ejecuta un programa separado llamado "agente esclavo", no es necesario instalar Jenkins completo (paquete o binarios compilados) en un esclavo. Hay varias formas de iniciar agentes esclavos, pero al final, el agente esclavo y el maestro Jenkins necesitan establecer un enlace de comunicación bidireccional (por ejemplo, un socket TCP/IP) para poder funcionar.

Para configurar esclavos/nodos en Jenkins, siga los pasos que se indican a continuación.

Paso 1− Vaya a la sección Administrar Jenkins y desplácese hacia abajo hasta la sección Administrar nodos. 

Paso 2− Haga clic en Nuevo nodo

Paso 3− Asigne un nombre al nodo, elija la opción Esclavo tonto y haga clic en Aceptar.

Etapa 4− Introduzca los detalles de la máquina esclava del nodo. En el siguiente ejemplo, estamos considerando que la máquina esclava es una máquina con Windows, por lo que se eligió como método de inicio la opción "Permitir que Jenkins controle este esclavo de Windows como un servicio de Windows". También necesitamos agregar los detalles necesarios del nodo esclavo, como el nombre del nodo y las credenciales de inicio de sesión para la máquina del nodo. Haga clic en el botón Guardar. Las etiquetas cuyo nombre se ingresa como "Nuevo_esclavo" son las que se pueden usar para configurar trabajos para usar esta máquina esclava.

Una vez que se completen los pasos anteriores, la máquina del nuevo nodo estará inicialmente fuera de línea, pero se conectará si todas las configuraciones en la pantalla anterior se ingresaron correctamente. En cualquier momento se puede hacer que la máquina esclava del nodo esté fuera de línea si es necesario.

Jenkins: implementación automatizada

Hay muchos complementos disponibles que se pueden usar para transferir los archivos de compilación después de una compilación exitosa a la aplicación/servidor web respectivo. Un ejemplo es el "Complemento Implementar en contenedor". Para utilizar esto, siga los pasos que se indican a continuación.

Paso 1− Vaya a Administrar Jenkins → Administrar complementos. Vaya a la sección Disponible, busque el complemento "Implementar complemento en contenedor" e instálelo. Reinicie el servidor Jenkins.

Este complemento toma un archivo war/ear y lo implementa en un servidor de aplicaciones remoto en ejecución al final de la compilación.

  1. Tomcat 4.x/5.x/6.x/7.x 
  2. JBoss 3.x/4.x

Paso 2− Vaya a su proyecto de compilación y haga clic en la opción Configurar. Elija la opción "Implementar guerra/oído en un contenedor"

Paso 3− En la sección Implementar war/ear en un contenedor, ingrese los detalles requeridos del servidor en el que se deben implementar los archivos y haga clic en el botón Guardar. Estos pasos ahora garantizarán que los archivos necesarios se implementen en el contenedor necesario después de una compilación exitosa. 

Métricas y tendencias

Hay varios complementos disponibles en Jenkins para mostrar métricas de compilaciones que se llevan a cabo durante un período de tiempo. Estas métricas son útiles para comprender sus compilaciones y con qué frecuencia fallan o aprueban con el tiempo. Como ejemplo, veamos el 'Complemento de métricas de historial de compilación'.

Este complemento calcula las siguientes métricas para todas las compilaciones una vez instaladas

  1. Tiempo medio hasta el fallo (MTTF)
  2. Tiempo medio de recuperación (MTTR)
  3. Desviación estándar de los tiempos de construcción

Paso 1− Vaya al panel de Jenkins y haga clic en Administrar Jenkins.

Paso 2− Vaya a la opción Administrar complementos.

 

Paso 3− Vaya a la pestaña Disponible y busque el complemento 'Complemento de métricas de historial de compilación' y elija 'instalar sin reiniciar'.

Etapa 4− Aparece la siguiente pantalla para confirmar la instalación exitosa del complemento. Reinicie la instancia de Jenkins.

Cuando vaya a su página de Trabajo, verá una tabla con las métricas calculadas. Las métricas se muestran para los últimos 7 días, los últimos 30 días y todo el tiempo.

Para ver las tendencias generales en Jenkins, hay complementos disponibles para recopilar información desde las compilaciones y Jenkins y mostrarla en formato gráfico. Un ejemplo de este tipo de complemento es el 'complemento Hudson global-build-stats'. Así que veamos los pasos para esto.

Paso 1− Vaya al panel de Jenkins y haga clic en Administrar Jenkins. 

Paso 2− Vaya a la opción Administrar complementos

Paso 3− Vaya a la pestaña Disponible y busque el complemento 'Hudson global-build-stats plugin' y elija 'instalar sin reiniciar'.

Etapa 4− Aparece la siguiente pantalla para confirmar la instalación exitosa del complemento. Reinicie la instancia de Jenkins.

Para ver las estadísticas globales, siga los pasos del 5 al 8.

Paso 5− Vaya al panel de Jenkins y haga clic en Administrar Jenkins. En la pantalla Administrar Jenkins, desplácese hacia abajo y verá una opción llamada "Estadísticas globales de compilación". Haga clic en este enlace.

Paso 6− Haga clic en el botón 'Inicializar estadísticas'. Lo que esto hace es reunir todos los registros existentes para compilaciones que ya se han llevado a cabo y se pueden crear gráficos basados en estos resultados.

Paso 7− Una vez que se han inicializado los datos, es hora de crear un nuevo gráfico. Haga clic en el enlace 'Crear nuevo gráfico'.

Paso 8− Aparecerá una ventana emergente para ingresar información relevante para los detalles del nuevo gráfico. Ingrese la siguiente información obligatoria

  1. Título: cualquier información del título; en este ejemplo, se proporciona como Ancho del gráfico 'Demostración': 800
  2. Altura del gráfico: 600 Escala de tiempo del gráfico: diario
  3. Duración del gráfico: 30 días

El resto de la información puede permanecer como está. Una vez ingresada la información, haga clic en Crear nuevo gráfico.

Ahora verá el gráfico que muestra las tendencias de las compilaciones a lo largo del tiempo.

Si hace clic en cualquier sección del gráfico, obtendrá un desglose de los detalles del trabajo y sus construcciones.

Mantenimiento del servidor

Las siguientes son algunas de las actividades básicas que llevará a cabo, algunas de las cuales son mejores prácticas para el mantenimiento del servidor Jenkins.

Opciones de URL

Los siguientes comandos, cuando se agregan a la URL de la instancia de Jenkins, llevarán a cabo las acciones relevantes en la instancia de Jenkins.

http://localhost:8080/jenkins/exit− cerrar jenkins http://localhost:8080/jenkins/restart − reiniciar jenkins http://localhost:8080/jenkins/reload − para recargar la configuración

Copia de seguridad de Jenkins - Inicio

El directorio de inicio de Jenkins no es más que la ubicación en su disco donde Jenkins almacena toda la información para los trabajos, compilaciones, etc. La ubicación de su directorio de inicio se puede ver cuando hace clic en Administrar Jenkins → Configurar sistema.

Configure Jenkins en la partición que tenga más espacio libre en disco: dado que Jenkins tomaría el código fuente para los distintos trabajos definidos y realizaría compilaciones continuas, asegúrese siempre de que Jenkins esté configurado en una unidad que tenga suficiente espacio en el disco duro. Si su disco duro se queda sin espacio, todas las compilaciones de la instancia de Jenkins comenzarán a fallar.

Otra mejor práctica es escribir trabajos cron o tareas de mantenimiento que puedan realizar operaciones de limpieza para evitar que el disco donde está configurado Jenkins se llene.

Implementación continua

Jenkins brinda un buen soporte para brindar implementación y entrega continuas. Si observa el flujo de cualquier desarrollo de software hasta su implementación, será como se muestra a continuación.

La parte principal de la implementación continua es garantizar que todo el proceso que se muestra arriba esté automatizado. Jenkins logra todo esto a través de varios complementos, uno de ellos es el "Complemento Implementar en contenedor" que se vio en las lecciones anteriores. 

Hay complementos disponibles que pueden brindarle una representación gráfica del proceso de implementación continua. Pero primero creemos otro proyecto en Jenkins, para que podamos ver mejor cómo funciona.

Creemos un proyecto simple que emule la etapa de control de calidad y realice una prueba de la aplicación Helloworld.

Paso 1− Vaya al panel de Jenkins y haga clic en Nuevo elemento. Elija un 'proyecto de estilo libre' e ingrese el nombre del proyecto como 'QA'. Haga clic en el botón Aceptar para crear el proyecto.

Paso 2− En este ejemplo, lo mantendremos simple y solo usaremos este proyecto para ejecutar un programa de prueba para la aplicación Helloworld.

Entonces el control de calidad de nuestro proyecto ya está configurado. Puedes hacer una compilación para ver si se compila correctamente. 

Paso 3− Ahora ve a tu proyecto Helloworld y haz clic en la opción Configurar.

Etapa 4− En la configuración del proyecto, elija 'Agregar acción posterior a la compilación' y elija 'Construir otros proyectos'

Paso 5− En la sección 'Proyecto a construir', ingrese QA como nombre del proyecto a construir. Puede dejar la opción predeterminada "Activar solo si la compilación es estable". Haga clic en el botón Guardar. 

Paso 7− Instalemos ahora el complemento de canalización de entrega. Vaya a Administrar Jenkins → Administrar complementos. En la pestaña disponible, busque 'Complemento de canalización de entrega'. Haga clic en Instalar sin reiniciar. Una vez hecho esto, reinicie la instancia de Jenkins.

Paso 8− Para ver el proceso de entrega en acción, en el Panel de Jenkins, haga clic en el símbolo + en la pestaña junto a la pestaña "Todos".

Paso 9− Ingrese cualquier nombre para el nombre de la Vista y elija la opción 'Vista del canal de entrega'.

Paso 10− En la siguiente pantalla, puede dejar las opciones predeterminadas. Se pueden cambiar las siguientes configuraciones:

  1. Asegúrese de que la opción "Mostrar resultados del análisis estático" esté marcada. Asegúrese de que la opción "Mostrar tiempo total de construcción" esté marcada.
  2. Para el trabajo inicial: ingrese el proyecto Helloworld como el primer trabajo que se debe generar. Ingrese cualquier nombre para la tubería
  3. Haga clic en el botón Aceptar.

Ahora verá una excelente vista de todo el proceso de entrega y podrá ver el estado de cada proyecto en todo el proceso.

Otro complemento famoso es el complemento de canalización de compilación. Echemos un vistazo a esto.

Paso 1− Vaya a Administrar Jenkins → Administrar complementos. En la pestaña disponible, busque 'Build Pipeline Plugin'. Haga clic en Instalar sin reiniciar. Una vez hecho esto, reinicie la instancia de Jenkins.

Paso 2− Para ver el proceso de compilación en acción, en el Panel de Jenkins, haga clic en el símbolo + en la pestaña junto a la pestaña "Todos". 

Paso 3− Ingrese cualquier nombre para el nombre de la Vista y elija la opción 'Crear vista de canalización'.

Etapa 4− Acepte la configuración predeterminada, solo que en el trabajo inicial seleccionado, asegúrese de ingresar el nombre del proyecto Helloworld. Haga clic en el botón Aceptar. 

Ahora verá una excelente vista de todo el proceso de entrega y podrá ver el estado de cada proyecto en todo el proceso.

Gestión de complementos

Para obtener la lista de todos los complementos disponibles en Jenkins, puede visitar el enlace: https://wiki.jenkins-ci.org/display/JENKINS/Plugins

Ya hemos visto muchos casos de instalación de complementos, veamos algunas otras tareas de mantenimiento con respecto a los complementos.

Desinstalar complementos

Para desinstalar un complemento, vaya a Administrar Jenkins → Administrar complementos. Haga clic en la pestaña Instalado. Algunos de los complementos tendrán la opción Desinstalar. Puede hacer clic en estos botones para desinstalar los complementos. Asegúrese de reiniciar su instancia de Jenkins después de la desinstalación.

Instalar otra versión de un complemento

A veces puede ser necesario instalar una versión anterior de un complemento; en tal caso, puede descargar el complemento desde la página de complementos correspondiente en el sitio web de Jenkins. Luego puede usar la opción Cargar para cargar el complemento manualmente.

Seguridad

En Jenkins tienes la posibilidad de configurar usuarios y sus permisos relevantes en la instancia de Jenkins. De forma predeterminada, no querrás que todos puedan definir trabajos u otras tareas administrativas en Jenkins. Entonces Jenkins tiene la capacidad de tener implementada una configuración de seguridad.

Para configurar la seguridad en Jenkins, siga los pasos que se indican a continuación.

Paso 1− Haga clic en Administrar Jenkins y elija la opción 'Configurar seguridad global'.

Paso 2− Haga clic en la opción Habilitar seguridad. Como ejemplo, supongamos que queremos que Jenkins mantenga su propia base de datos de usuarios, por lo que en el ámbito de seguridad, elija la opción "Base de datos de usuarios propia de Jenkins".

De forma predeterminada, querrá que un administrador central defina los usuarios en el sistema; por lo tanto, asegúrese de que la opción "Permitir que los usuarios se registren" no esté seleccionada. Puedes dejar el resto como está por ahora y hacer clic en el botón Guardar.

Paso 3− Se le pedirá que agregue su primer usuario. Como ejemplo, estamos configurando usuarios administradores para el sistema.

Etapa 4− Ahora es el momento de configurar sus usuarios en el sistema. Ahora, cuando vaya a Administrar Jenkins y se desplace hacia abajo, verá la opción "Administrar usuarios". Haga clic en esta opción.

Paso 5− Así como definió su usuario administrador, comience a crear otros usuarios para el sistema. Como ejemplo, simplemente estamos creando otro usuario llamado 'usuario'.

Paso 6− Ahora es el momento de configurar sus autorizaciones, básicamente quién tiene acceso a qué. Vaya a Administrar Jenkins → Configurar seguridad global.

Ahora en la sección Autorización, haga clic en 'Seguridad basada en matriz'

Paso 7− Si no ve al usuario en la lista del grupo de usuarios, ingrese el nombre de usuario y agréguelo a la lista. Luego otorgue los permisos apropiados al usuario.

Haga clic en el botón Guardar una vez que haya definido las autorizaciones relevantes. Su seguridad de Jenkins ahora está configurada.

Nota− Para la autenticación de Windows AD, es necesario agregar el complemento de Active Directory a Jenkins.

Complemento de copia de seguridad

Jenkins tiene un complemento de copia de seguridad que se puede utilizar para realizar copias de seguridad de los ajustes de configuración críticos relacionados con Jenkins. Siga los pasos que se indican a continuación para tener una copia de seguridad en su lugar.

Paso 1− Haga clic en Administrar Jenkins y elija la opción 'Administrar complementos'.

Paso 2− En la pestaña disponible, busque 'Complemento de copia de seguridad'. Haga clic en Instalar sin reiniciar. Una vez hecho esto, reinicie la instancia de Jenkins. 

Paso 3− Ahora, cuando vaya a Administrar Jenkins y se desplace hacia abajo, verá 'Administrador de copias de seguridad' como una opción. Haga clic en esta opción.

Etapa 4− Haga clic en Configuración.

Paso 5− Aquí, el campo principal a definir es el directorio de su copia de seguridad. Asegúrese de que esté en otra unidad que sea diferente de la unidad donde está configurada su instancia de Jenkins.

Haga clic en el botón Guardar.

Paso 6− Haga clic en 'Configuración de Backup Hudson' en la pantalla del administrador de respaldo para iniciar el respaldo.

La siguiente pantalla mostrará el estado de la copia de seguridad.

Para recuperarse de una copia de seguridad, vaya a la pantalla Administrador de copias de seguridad, haga clic en Restaurar configuración de Hudson.

Se mostrará la lista de copias de seguridad, haga clic en la correspondiente para hacer clic en Iniciar restauración para comenzar la restauración de la copia de seguridad. 

Recursos

https://www.jenkins.io/

https://www.jenkins.io/doc/

https://www.jenkins.io/doc/book/system-administration/ 

https://www.tutorialandexample.com/jenkins-tutorial/

Siguiente Publicación