Jenkins - Guía rápida
¿Por qué Jenkins?
Jenkins es un software que permite continuous integration. Jenkins se instalará en un servidor donde se llevará a cabo la compilación central. El siguiente diagrama de flujo demuestra un flujo de trabajo muy simple de cómo funciona Jenkins.
Junto con Jenkins, a veces, también se puede ver la asociación de Hudson. Hudson es una herramienta de integración continua de código abierto basada en Java muy popular desarrollada por Sun Microsystems que luego fue adquirida por Oracle. Después de la adquisición de Sun por 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 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 tengan 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 | JDK 1.5 o superior |
Memoria | 2 GB de RAM (recomendado) |
Espacio del disco | Sin requisitos mínimos. Tenga en cuenta que, dado que todas las compilaciones se almacenarán en las máquinas Jenkins, debe asegurarse de que haya 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. |
Contenedor de 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). |
Descarga Jenkins
El sitio web oficial de Jenkins es Jenkins . Si hace clic en el enlace dado, puede obtener la página de inicio del sitio web oficial de Jenkins como se muestra a continuación.
De forma predeterminada, la última versión y la versión de soporte a largo plazo estarán disponibles para su descarga. 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.
Comenzando 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 se realiza mediante un servidor web integrado llamado winstone.
D:\>Java –jar Jenkins.war
Running from: D:\jenkins.war
Webroot: $user.home/ .jenkins
Sep 29, 2015 4:10:46 PM winstone.Logger logInternal
INFO: Beginning extraction from war file
Una vez que el procesamiento se completa sin errores importantes, la siguiente línea aparecerá en la salida del símbolo del sistema.
INFO: Jenkins is fully up and running
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.
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 java.
SO | Tarea | Mando |
---|---|---|
Ventanas | Abrir consola de comandos | \> java –version |
Linux | Terminal de comando abierto | $ 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.
SO | Salida |
---|---|
Ventanas | 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" Entorno de tiempo de ejecución abierto de 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) |
Suponemos que los lectores de este tutorial tienen Java 1.7.0_60 instalado en su sistema antes de continuar con este tutorial.
En caso de que no tenga Java JDK, puede descargarlo desde el enlace Oracle
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 Java está instalado en su máquina. Por ejemplo,
SO | Salida |
---|---|
Ventanas | Establezca la variable de entorno 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.
SO | Salida |
---|---|
Ventanas | Agregue la cadena; C: \ Archivos de programa \ Java \ jdk1.7.0_60 \ bin hasta el final de la variable del sistema PATH. |
Linux | export PATH = $ PATH: $ JAVA_HOME / bin / |
Verifique el comando java-version desde el símbolo del sistema como se explicó anteriormente.
Paso 3: Descarga Tomcat
El sitio web oficial de Tomcat es Tomcat . Si hace clic en el enlace dado, puede obtener 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.
Vaya a la sección 'Distribuciones binarias'. Descargue el archivo zip de Windows de 32 bits.
Luego descomprima el contenido del archivo zip descargado.
Paso 4: Configuración de Jenkins y Tomcat
Copie el archivo Jenkis.war que se descargó de la sección anterior y cópielo en 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:\Apps\tomcat7\bin>startup.bat
Una vez que el procesamiento se completa sin errores importantes, la siguiente línea aparecerá en la salida del símbolo del sistema.
INFO: Server startup in 1302 ms
Abra el navegador y vaya al enlace - http://localhost:8080/jenkins. Jenkins estará listo y funcionando en tomcat.
Para este ejercicio, debe asegurarse de que haya conectividad a Internet desde 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 le dará una lista de complementos que están disponibles para descargar. En la pestaña 'Filtro', escriba 'Complemento de Git'
A continuación, se filtrará la lista. Marque la opción Git Plugin y haga clic en el botón 'Instalar sin reiniciar'
Entonces comenzará la instalación y la pantalla se actualizará para mostrar el estado de la descarga.
Una vez que se completen todas las instalaciones, reinicie Jenkins emitiendo el siguiente comando en el navegador. http://localhost:8080/jenkins/restart
Una vez que se reinicie Jenkins, Git estará disponible como una 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, ahora verá 'Git' como una opción.
Paso 1: descarga y configuración de Maven
El sitio web oficial de maven es Apache Maven . Si hace clic en el enlace dado, 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'.
Desmarca 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.
Probablemente habrías visto un par de veces en los ejercicios anteriores en las que tuvimos que configurar opciones dentro de Jenkins. A continuación, se muestran las diversas opciones de configuración en Jenkins.
Entonces, uno puede obtener las diversas opciones de configuración para Jenkins haciendo clic en la opción 'Administrar Jenkins' en el lado del menú de la izquierda.
A continuación, se le presentará la siguiente pantalla:
Haga clic en Configurar sistema. A continuación se describen 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 mantener archivos. Se puede comprobar esta ubicación desde la pantalla de configuración de Jenkins. De forma predeterminada, se establece 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
Establezca la variable de entorno "JENKINS_HOME" en el nuevo directorio de inicio antes de iniciar el contenedor de servlets.
Establezca la propiedad del sistema "JENKINS_HOME" en el contenedor de servlets.
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 ~ / .jenkins existente 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,
SO | Salida |
---|---|
Ventanas | Establezca la variable de entorno JENKINS_HOME en la ubicación que desea. Como ejemplo, puede configurarlo en E: \ Apps \ Jenkins |
Linux | exportar 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áneos 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 al número de CPU en las máquinas para 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 Builds donde 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 el host local con la IP de la máquina. Esto ayudará a configurar esclavos y al enviar enlaces usando el correo electrónico, ya que puede acceder directamente a la URL de Jenkins usando 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 por correo electrónico, puede configurar los ajustes de 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.
Para administrar Jenkins, haga clic en la opción "Administrar Jenkins" en el menú de la izquierda.
Entonces, uno puede obtener las diversas opciones de configuración para Jenkins haciendo clic en la opción 'Administrar Jenkins' en el lado del menú de la izquierda.
A continuación, se le presentará la siguiente pantalla:
Algunas de las opciones de gestión son las siguientes:
Configurar sistema
Aquí es donde se pueden administrar las rutas a las diversas herramientas para usar 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 los complementos. Jenkins agregará los campos de configuración requeridos dinámicamente después de que se instalen los complementos.
Recargar la configuración desde el disco
Jenkins almacena todo su sistema y los detalles de configuración del trabajo de compilación 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 que desconecte a 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, para generar 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 en 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 y 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 para solucionar 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 Groovy en el servidor. Es útil para la resolución de problemas avanzada, ya que requiere un gran conocimiento de la arquitectura interna de Jenkins.
Gestionar nodos
Jenkins es capaz de manejar compilaciones distribuidas y paralelas. En esta pantalla, puede configurar cuántas compilaciones desea. Jenkins se ejecuta simultáneamente y, si usa 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 apagado
Si es necesario apagar Jenkins, o el servidor en el que se está ejecutando Jenkins, es mejor no hacerlo cuando se está ejecutando una compilación. Para cerrar Jenkins limpiamente, puede usar el enlace Prepararse para el cierre, que evita que se inicien nuevas compilaciones. Eventualmente, cuando todas las compilaciones actuales hayan terminado, se podrá cerrar Jenkins limpiamente.
Para este ejercicio, crearemos un trabajo en Jenkins que toma una simple aplicación HelloWorld, construye y ejecuta el programa java.
Step 1 - Vaya al panel de Jenkins y haga clic en Nuevo elemento
Step 2- En la siguiente pantalla, ingrese el nombre del artículo, en este caso lo hemos llamado Helloworld. Elija la 'opción de proyecto Freestyle'
Step 3 - Aparecerá la siguiente pantalla en la que puede especificar los detalles del trabajo.
Step 4- Necesitamos especificar la ubicación de los archivos que deben construirse. En este ejemplo, asumiremos que se ha configurado un repositorio local de git (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.
Note- 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 que las credenciales agreguen un nombre de usuario y una contraseña al repositorio de github para que el código se pueda obtener del repositorio remoto.
Step 5 - Ahora vaya a la sección Compilar y haga clic en Agregar paso de compilación → Ejecutar el comando por lotes de Windows
Step 6 - En la ventana de comandos, ingrese los siguientes comandos y luego haga clic en el botón Guardar.
Javac HelloWorld.java
Java HelloWorld
Step 7 - Una vez guardado, puede hacer clic en la opción Construir ahora para ver si ha definido correctamente el trabajo.
Step 8- Una vez programada la compilación, se ejecutará. La siguiente sección del historial de compilación muestra que hay una compilación en curso.
Step 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 ha ejecutado con éxito. Haga clic en el número 1 en el historial de compilación para que aparezcan los detalles de la compilación.
Step 10 - Haga clic en el enlace Salida de la consola para ver los detalles de la compilación
Aparte de los pasos que se muestran arriba, hay tantas formas de crear un trabajo de compilación, las opciones disponibles son muchas, lo que hace que Jenkins sea una herramienta de implementación continua tan fantástica.
Jenkins proporciona una funcionalidad lista para usar para Junit y proporciona una gran cantidad de complementos para pruebas unitarias para otras tecnologías, un ejemplo es MSTest para pruebas unitarias .Net. Si vas al enlacehttps://wiki.jenkins-ci.org/display/JENKINS/xUnit+Plugin le dará la lista de complementos de pruebas unitarias disponibles.
Ejemplo de una prueba de Junit en Jenkins
El siguiente ejemplo considerará
- Una clase simple de HelloWorldTest basada en Junit.
- Ant como la herramienta de construcción dentro de Jenkins para construir la clase en consecuencia.
Step 1 - Vaya al panel de Jenkins y haga clic en el proyecto HelloWorld existente y elija la opción Configurar
Step 2 - Vaya a la sección para Agregar un paso de compilación y elija la opción para Invocar Ant.
Step 3 - Haga clic en el botón Avanzado.
Step 4 - En la sección del archivo de compilación, ingrese la ubicación del archivo build.xml.
Step 5 - A continuación, haga clic en la opción Agregar opción de compilación posterior y elija la opción de "Publicar informe de resultados de la prueba de Junit"
Step 6- En los XML de informes de prueba, ingrese la ubicación como se muestra a continuación. Asegúrese de que Reports 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 resultado que son producidos por la ejecución de los casos de prueba de Junit. Estos archivos xml que luego se convierten en informes que se pueden ver más tarde.
Una vez hecho esto, haga clic en la opción Guardar al final.
Step 7 - Una vez guardado, puede hacer clic en la opción Construir ahora.
Una vez que se completa la compilación, el 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 un 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.
Uno de los principios básicos de la integración continua es que una construcció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 usar pruebas automatizadas. Sin las pruebas automatizadas adecuadas, tendrá que retener muchos artefactos de construcción y probarlos a mano, lo que difícilmente está en el espíritu de la Integración Continua. El siguiente ejemplo muestra cómo utilizar Selenium para ejecutar pruebas web automatizadas.
Step 1 - Vaya a Administrar complementos.
Step 2- Busque el complemento Hudson Selenium y elija instalarlo. Reinicie la instancia de Jenkins.
Step 3 - Vaya a Configurar sistema.
Step 4 - Configure el jar del servidor de selenium y haga clic en el botón Guardar.
Note- El archivo jar de selenio se puede descargar desde la ubicación SeleniumHQ
Haga clic en la descarga del servidor independiente Selenium.
Step 5 - Regrese a su tablero y haga clic en la opción Configurar para el proyecto HelloWorld.
Step 6 - Haga clic en Agregar paso de compilación y elija la opción "SeleniumHQ htmlSuite Run"
Step 7- Agregue los detalles necesarios para la prueba de selenio. Aquí, el suiteFile es el TestSuite generado usando el IDE de Selenium. Haga clic en Guardar y ejecute una compilación. Ahora la compilación posterior lanzará el controlador de selenio y ejecutará la prueba html.
Jenkins viene con una función lista para usar para agregar una notificación por correo electrónico para un proyecto de construcción.
Step 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.
Step 2- Configure los destinatarios en el proyecto de Jenkins: cuando configura cualquier proyecto de compilación de Jenkins, justo al final está la capacidad de agregar destinatarios que recibirían notificaciones por correo electrónico para compilaciones inestables o rotas. Luego haga clic en el botón Guardar.
Además del 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:
"Format" - Este es el formato de carga útil de notificación que puede ser JSON o XML.
"Protocol" - protocolo a utilizar para enviar mensajes de notificación, HTTP, TCP o UDP.
"Event" - Los eventos de trabajo que activan notificaciones: Trabajo iniciado, Trabajo completado, Trabajo finalizado o Todos los eventos (la opción predeterminada).
"URL"- URL para enviar notificaciones. Toma la forma de "http://host"para el protocolo HTTP y
"host:port"
para los protocolos TCP y UDP."Timeout" - Tiempo de espera en milisegundos para enviar la solicitud de notificación, 30 segundos por defecto.
Como se demostró en la sección anterior, hay muchos complementos de informes disponibles, siendo el más simple los informes disponibles para las pruebas de jUnit.
En la acción Post-build 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.
Jenkins tiene una gran cantidad de complementos de análisis de código. Los diversos complementos se pueden encontrar enhttps://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, es necesario instalar un complemento en Jenkins.
Además, está disponible el complemento de complemento Static Analysis Collector que combina los resultados individuales de estos complementos en una única vista y gráfico de tendencias.
Los complementos pueden proporcionar información como
- El número total de advertencias en un trabajo
- Una muestra de las advertencias nuevas y fijas de una compilación.
- Informes de tendencias que muestran la cantidad de advertencias por compilación
- Descripción general de las advertencias encontradas por módulo, paquete, categoría o tipo
- Informes detallados de las advertencias encontradas filtradas opcionalmente por gravedad (o nuevas y corregidas)
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 principal de Jenkins.
A veces, es posible que también necesite varios entornos diferentes para probar sus compilaciones. En este caso, usar un esclavo para representar cada uno de sus 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 "adherirse" a una máquina en particular para una construcción, mientras que otros pueden optar por vagar libremente entre esclavos.
Dado que cada esclavo ejecuta un programa separado llamado "agente esclavo", no es necesario instalar el 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 deben establecer un enlace de comunicación bidireccional (por ejemplo, un conector TCP / IP) para poder operar.
Para configurar esclavos / nodos en Jenkins, siga los pasos que se indican a continuación.
Step 1 - Vaya a la sección Administrar Jenkins y desplácese hacia abajo hasta la sección Administrar nodos.
Step 2 - Haga clic en Nuevo nodo
Step 3 - Dé un nombre para el nodo, elija la opción Dumb slave y haga clic en Ok.
Step 4- Ingrese 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 tanto, se eligió la opción de “Dejar que Jenkins controle este esclavo de Windows como un servicio de Windows” como método de inicio. 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 para las que se ingresa el nombre como “New_Slave” es lo que se puede usar para configurar trabajos para usar esta máquina esclava.
Una vez que se completen los pasos anteriores, la nueva máquina de nodo estará inicialmente en un estado 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.
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 correspondiente. Un ejemplo es el "Complemento de implementación en contenedor". Para usar esto, siga los pasos que se indican a continuación.
Step 1- Vaya a Administrar Jenkins → Administrar complementos. Vaya a la sección Disponible y busque el complemento "Implementar en el contenedor del complemento" e instalar el complemento. Reinicie el servidor de Jenkins.
Este complemento toma un archivo war / ear y lo implementa en un servidor de aplicaciones remoto en ejecución al final de una compilación.
Tomcat 4.x / 5.x / 6.x / 7.x
JBoss 3.x / 4.x
Glassfish 2.x / 3.x
Step 2- Vaya a su proyecto de compilación y haga clic en la opción Configurar. Elija la opción "Implementar war / ear en un contenedor"
Step 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.
Hay varios complementos que están 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 la frecuencia con la que fallan / pasan 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
- Tiempo medio para fallar (MTTF)
- Tiempo medio de recuperación (MTTR)
- Desviación estándar de los tiempos de construcción
Step 1 - Vaya al panel de Jenkins y haga clic en Administrar Jenkins
Step 2 - Vaya a la opción Administrar complementos.
Step 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'.
Step 4- Aparece la siguiente pantalla para confirmar la instalación correcta del complemento. Reinicie la instancia de Jenkins.
Cuando vaya a la página de su 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 de las compilaciones y Jenkins y mostrarlos en un formato gráfico. Un ejemplo de dicho complemento es el 'complemento de estadísticas de compilación global de Hudson'. Así que repasemos los pasos para esto.
Step 1 - Vaya al panel de Jenkins y haga clic en Administrar Jenkins
Step 2 - Vaya a la opción Administrar complementos
Step 3 - Vaya a la pestaña Disponible y busque el complemento 'Hudson global-build-stats plugin' y elija 'instalar sin reiniciar'.
Step 4- Aparece la siguiente pantalla para confirmar la instalación correcta del complemento. Reinicie la instancia de Jenkins.
Para ver las estadísticas globales, siga los pasos del 5 al 8.
Step 5- Vaya al panel de Jenkins y haga clic en Administrar Jenkins. En la pantalla Administrar Jenkins, desplácese hacia abajo y ahora verá una opción llamada 'Estadísticas de compilación global'. Haga clic en este enlace.
Step 6- Haga clic en el botón 'Inicializar estadísticas'. Lo que hace es que recopila todos los registros existentes para las compilaciones que ya se han realizado y se pueden crear gráficos en función de estos resultados.
Step 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'.
Step 8- Aparecerá una ventana emergente para ingresar información relevante para los detalles del nuevo gráfico. Ingrese la siguiente información obligatoria
- Título: cualquier información del título, para este ejemplo, se proporciona como 'Demo'
- Ancho del gráfico: 800
- Altura del gráfico: 600
- Escala de tiempo del gráfico: diario
- Duración del gráfico: 30 días
El resto de la información puede permanecer como está. Una vez que ingrese 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.
Las siguientes son algunas de las actividades básicas que llevará a cabo, algunas de las cuales son las 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 - cierre jenkins
http://localhost:8080/jenkins/restart - reiniciar jenkins
http://localhost:8080/jenkins/reload - para recargar la configuración
Copia de seguridad de Jenkins Home
El directorio de inicio de Jenkins no es más que la ubicación en su disco donde Jenkins almacena toda la información de 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 diversos 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 en la instancia de Jenkins comenzarán a fallar.
Otra práctica recomendada es escribir trabajos cron o tareas de mantenimiento que puedan realizar operaciones de limpieza para evitar que el disco en el que está configurado Jenkins se llene.
Jenkins proporciona un buen soporte para proporcionar implementación y entrega continuas. Si observa el flujo de cualquier desarrollo de software a través de la 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 realmente 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 esto.
Creemos un proyecto simple que emule la etapa de control de calidad y haga una prueba de la aplicación Helloworld.
Step 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 'Control de calidad'. Haga clic en el botón Aceptar para crear el proyecto.
Step 2 - En este ejemplo, lo mantenemos simple y solo usamos este proyecto para ejecutar un programa de prueba para la aplicación Helloworld.
Así que nuestro proyecto de control de calidad ya está configurado. Puede hacer una compilación para ver si se compila correctamente.
Step 3 - Ahora ve a tu proyecto Helloworld y haz clic en la opción Configurar
Step 4 - En la configuración del proyecto, elija 'Agregar acción posterior a la construcción' y elija 'Construir otros proyectos'
Step 5- En la sección 'Proyecto para construir', ingrese QA como el nombre del proyecto para construir. Puede dejar la opción predeterminada de 'Activar solo si la compilación es estable'. Haga clic en el botón Guardar.
Step 6- Construye el proyecto Helloworld. Ahora, si ve la salida de la consola, también verá que después de que el proyecto de Helloworld se haya construido con éxito, también se producirá la construcción del proyecto de QA.
Step 7- Instalemos ahora el complemento de canalización de entrega. Vaya a Administrar Jenkins → Administrar complementos. En la pestaña disponible, busque 'Delivery Pipeline Plugin'. Haga clic en Instalar sin reiniciar. Una vez hecho esto, reinicie la instancia de Jenkins.
Step 8 - Para ver la canalización 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'.
Step 9 - Ingrese cualquier nombre para el nombre de la vista y elija la opción 'Vista de canal de entrega'.
Step 10- En la siguiente pantalla, puede dejar las opciones predeterminadas. Se pueden cambiar las siguientes configuraciones:
- 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.
- Para el trabajo inicial: ingrese el proyecto Helloworld como el primer trabajo que debe construirse.
- Ingrese cualquier nombre para la canalización
- 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 plugin famoso es el build pipeline plugin. Echemos un vistazo a esto.
Step 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.
Step 2 - Para ver la canalización 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'.
Step 3 - Introduzca cualquier nombre para el nombre de la vista y elija la opción 'Crear vista de canalización'.
Step 4- Acepte la configuración predeterminada, solo 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.
Para obtener la lista de todos los complementos disponibles en Jenkins, se 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.
Instalación de 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. A continuación, puede utilizar elUpload opción para cargar el complemento manualmente.
En Jenkins, tiene la capacidad de configurar usuarios y sus permisos relevantes en la instancia de Jenkins. De forma predeterminada, no querrá que todos puedan definir trabajos u otras tareas administrativas en Jenkins. Entonces Jenkins tiene la capacidad de tener una configuración de seguridad en su lugar.
Para configurar la seguridad en Jenkins, siga los pasos que se indican a continuación.
Step 1 - Haga clic en Administrar Jenkins y elija la opción 'Configurar seguridad global'.
Step 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 de 'Base de datos de usuarios propia de Jenkins'.
De forma predeterminada, querrá que un administrador central defina usuarios en el sistema, por lo tanto, asegúrese de que la opción "Permitir que los usuarios se registren" no esté seleccionada. Puede dejar el resto como está por ahora y hacer clic en el botón Guardar.
Step 3- Se le pedirá que agregue su primer usuario. Por ejemplo, estamos configurando usuarios administradores para el sistema.
Step 4- Ahora es el momento de configurar sus usuarios en el sistema. Ahora, cuando vaya a Administrar Jenkins y desplácese hacia abajo, verá la opción 'Administrar usuarios'. Haga clic en esta opción.
Step 5- Al igual que definió su usuario administrador, comience a crear otros usuarios para el sistema. Como ejemplo, estamos creando otro usuario llamado 'usuario'.
Step 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 matrices'
Step 7- Si no ve al usuario en la lista de grupos 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.
Note - Para la autenticación de Windows AD, es necesario agregar el complemento de Active Directory a Jenkins.
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.
Step 1 - Haga clic en Administrar Jenkins y elija la opción 'Administrar complementos'.
Step 2- En la pestaña disponible, busque 'Complemento de respaldo'. Haga clic en Instalar sin reiniciar. Una vez hecho esto, reinicie la instancia de Jenkins.
Step 3- Ahora, cuando vaya a Administrar Jenkins y desplácese hacia abajo, verá 'Administrador de copias de seguridad' como una opción. Haga clic en esta opción.
Step 4 - Haga clic en Configuración.
Step 5- Aquí, el campo principal a definir es el directorio para 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.
Step 6 - Haga clic en 'Configuración de copia de seguridad de Hudson' en la pantalla del administrador de copia de seguridad para iniciar la copia de seguridad.
La siguiente pantalla mostrará el estado de la copia de seguridad.
Para recuperarse de una copia de seguridad, vaya a la pantalla Administrador de copia 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.
Las pruebas web, como las pruebas de selenio, se pueden ejecutar en máquinas esclavas remotas a través de la instalación del complemento maestro esclavo y del paquete de selenio. Los siguientes pasos muestran cómo ejecutar pruebas remotas usando esta configuración.
Step 1- Asegúrese de que su configuración maestro esclavo esté en su lugar. Vaya a su servidor principal de Jenkins. Vaya a Administrar Jenkins → Administrar nodos.
En nuestra lista de nodos, la etiqueta DXBMEM30 es la máquina esclava. En este ejemplo, tanto la máquina maestra como la esclava son máquinas Windows.
Step 2 - Haga clic en configurar para la máquina esclava DXBMEM30.
Step 3 - Asegúrese de que el método de inicio esté configurado como 'Iniciar agentes esclavos a través de Java Web Start'
Step 4- Ahora vaya a su máquina esclava y desde allí, abra una instancia de navegador a su instancia maestra de Jenkins. Luego vaya a Administrar Jenkins → Administrar nodos. Vaya a DXBMEM30 y haga clic en
Step 5 - Haga clic en la instancia de DXBMEM30.
Step 6 - Desplácese hacia abajo y verá la opción Iniciar, que es la opción para iniciar 'Java Web Start'
Step 7- Se le presentará una advertencia de seguridad. Haga clic en la casilla de verificación Aceptación y haga clic en ejecutar.
Ahora verá una ventana de Jenkins Slave abierta y ahora conectada.
Step 8- Configurar sus pruebas para que se ejecuten en el esclavo. Aquí, debe asegurarse de que el trabajo que se está creando esté diseñado específicamente para ejecutar solo las pruebas de selenio.
En la configuración del trabajo, asegúrese de que la opción 'Restringir dónde se puede ejecutar este proyecto' esté seleccionada y en la expresión Etiqueta coloque el nombre del nodo esclavo.
Step 9- Asegúrese de que la parte de selenio de su trabajo esté configurada. Debe asegurarse de que el archivo Sample.html y el archivo selenium-server.jar también estén presentes en la máquina esclava.
Una vez que haya seguido todos los pasos anteriores y haga clic en Construir, este proyecto ejecutará la prueba de selenio en la máquina esclava como se esperaba.