La integración continua y la implementación continua son dos de los principios básicos de DevOps. La automatización de los procesos de creación e implementación permite a los equipos de desarrollo de software realizar cambios más pequeños con más frecuencia.
La automatización limita los errores debido al código que escriben otros miembros del equipo, ya que el código se desprotegió. Para lograr este beneficio, es necesario un alto grado de automatización y orquestación. Entra Jenkins.
Jenkins es una de las herramientas de orquestación de código abierto más populares y flexibles que existen. No importa si trabaja en un monolito heredado o en microservicios, en las instalaciones o en la nube, Jenkins puede ayudarlo.
En este artículo, para entender cómo funcionan los servidores de compilación Jenkins, vamos a explicar los conceptos básicos sobre cómo poner en funcionamiento un servidor Jenkins. Vamos a sondear un repositorio local de Git y ejecutar un código de PowerShell cuando se realice un cambio en ese repositorio para tener una idea del flujo de trabajo.
Requisitos previos
Nos ponemos manos a la obra en este artículo. Si desea continuar, asegúrese de cumplir algunos requisitos previos:
-
Un dispositivo Mac, Linux o Windows con:
- Java 1.7 o superior (Jenkins se ejecuta en Java)
- Un administrador de paquetes (Chocolatey, Homebrew, apt, yum, etc.)
- Un navegador web (Chrome, Firefox o cualquier navegador basado en Chromium funcionan mejor)
- Git (Puede instalar esto con el administrador de paquetes)
- Un repositorio Git
Instalación de Jenkins
Puedes instalar Jenkins de muchas maneras, cada una de las cuales se ajusta a una plataforma y un caso de uso diferentes. Si está construyendo un servidor de producción, puede considerar usar un método diferente al que se muestra, pero la forma más fácil de instalar Jenkins es con un administrador de paquetes.
En Windows, es probable que uses Chocolatey, en MacOS Homebrew y en Linux depende de la distribución de Linux que estés usando.
Una vez que haya instalado Jenkins, puede acceder directamente desde su navegador web. Abra su navegador y navegue a
[localhost:8080](https://localhost:8080), y verá Jenkins iniciando o esperando una contraseña inicial.
localhost
se refiere al servicio de Jenkins que ahora se ejecuta en su dispositivo, mientras que el puerto
8080 es el puerto predeterminado de la interfaz de usuario de Jenkins.
Búsqueda de la contraseña de administrador
En la primera página, Jenkins escribe una contraseña de un solo uso en un archivo y luego le proporciona la ubicación del archivo. Este proceso garantiza que tenga acceso al sistema de archivos del sistema en el que lo instaló.
Obtenga la contraseña de este archivo, luego ingrésela en el cuadro de contraseña del administrador que se muestra en la siguiente captura de pantalla para continuar.

Instalación de complementos iniciales
A continuación, Jenkins le preguntará si desea seleccionar y elegir los complementos para instalar o usar los valores predeterminados recomendados. Los complementos son la forma en que Jenkins interactúa con otros componentes y servicios. Instalará más complementos más adelante, pero por ahora, seleccione los predeterminados.
Configuración de un usuario administrador
Después de unos minutos, debe configurar su primer usuario administrador de Jenkins. Esto se puede cambiar más tarde, pero es importante elegir uno que recordará al menos durante el proceso de configuración, como el que se muestra a continuación.

Definición de la URL de Jenkins
A continuación, se le pide que configure la URL de Jenkins. Este proceso no realizará ningún registro de dominio o DNS y no tiene ningún efecto sobre cómo accede a Jenkins. No hay necesidad de preocuparse por la URL de este tutorial. Pero la URL se usará en cualquier webhook y variable de entorno que cree Jenkins.
Una vez que haga clic en Guardar y finalizar, accederá a una página de Jenkins vacía como esta a continuación.

Instalación de complementos
Ahora que Jenkins está funcionando, debe saber algo al respecto: fuera de la caja, Jenkins no hace mucho. Para aprovechar Jenkins al máximo, debe instalar complementos.
Los complementos son paquetes de código abierto que interactúan con otros programas y servicios dentro de Jenkins.
Puede encontrar complementos para cualquier cosa, desde sistemas de control de versiones adicionales hasta proveedores de nube y Chuck Norris.
PowerShell es parte de los requisitos de este artículo. Como tal, debe instalar el complemento PowerShell y tal vez también el de Chuck Norris.
Haga clic en Administrar Jenkins en el menú de la izquierda, luego busque el ícono de la pieza del rompecabezas que dice Administrar complementos. Luego, en la pestaña Disponible, puede navegar y ver qué hay disponible.
Haga clic en la casilla de verificación junto al complemento de PowerShell y haga clic en Instalar sin reiniciar.

Configuración de un repositorio Git
Lo siguiente que debemos hacer es configurar nuestro repositorio git. Jenkins sondea este repositorio en busca de cambios para ejecutar nuestra compilación. Obtén la URL del repositorio y clónala, pero guarda la URL porque la necesitarás en el siguiente paso.
De vuelta en Jenkins, seleccione Nuevo elemento en la esquina superior izquierda, luego haga clic en Freestyle Project y asígnele un nombre. Un buen nombre tiene que ser exclusivo de Jenkins, pero también describe rápidamente qué tarea está haciendo en qué proyecto.
La siguiente página a la que se dirige es la página Configurar proyecto. Esto puede parecer abrumador, pero no se preocupe por eso ahora. Incluso en producción, no usará la mayoría de estos porque, si bien cada una de estas opciones tiene un caso de uso para alguien, no todas encajarán en su caso de uso.
A medida que se desplaza hacia abajo en la página de configuración, observe las muchas opciones disponibles. A continuación, encontrará cada opción y el valor que se debe proporcionar para esta demostración.
Gestión del código fuente
Haga clic en Git, luego ingrese la URL de su repositorio en el campo URL del repositorio. Deje el resto de la configuración por defecto. Esto le indicará a Jenkins que sondee ese repositorio en busca de cambios en la rama principal, ya que esa es la configuración predeterminada.

Disparadores de compilación
Seleccione Poll SCM, luego ingrese
en el campo Schedule. Este es un temporizador cron que busca cambios en ese repositorio cada minuto.

Construir
En el menú desplegable Agregar paso de compilación, seleccione Windows PowerShell e ingrese
Get-ChildItem $ENV:WORKSPACE en el campo Comando. Este comando utiliza una variable de Jenkins incorporada (que se tratará más detalladamente en breve) para imprimir una lista de archivos del repositorio que está viendo.

(Opcional) Acciones posteriores a la compilación
Si instaló el complemento de Chuck Norris anteriormente, seleccione Activar Chuck Norris en el menú desplegable Agregar post-construcción para agregar el efecto visual del complemento de Chuck Norris al trabajo. Jenkins en realidad no activa a Chuck Norris, Jenkins solo busca su aprobación.

Ejecutar la compilación
Todas las compilaciones de Jenkins tienen lugar en un espacio de trabajo, que es un directorio en el servidor de Jenkins. El proyecto de prueba que definió anteriormente clona el repositorio de la URL de git en ese espacio de trabajo, luego ejecuta los pasos de compilación como un script.ps1.
Anteriormente, cuando ingresó
$ENV:WORKSPACE
en el paso de compilación, es posible que se haya preguntado de dónde proviene esa variable. Jenkins proporciona algunas variables de entorno en el tiempo de ejecución de cada trabajo, incluido
$ENV:WORKSPACE, que apunta a la ruta del repositorio clonado.
Ahora que su trabajo está configurado, es hora de probarlo. Puede ejecutarlo de una de dos maneras: presione un nuevo compromiso en el repositorio y espere a que Jenkins sondee el cambio, o presione el botón Generar ahora en el lado izquierdo de la página. Cualquiera que sea el método que elija, desencadena una nueva ejecución de este trabajo de Jenkins, lo que significa que su página de inicio ahora debería verse así:

Para una última verificación de cordura para asegurarnos de que nuestro trabajo se ejecutó correctamente, haga clic en el número de compilación en el Historial de compilación. Esta página muestra algunos detalles, como los cambios que activaron la compilación, cuál es el ID de confirmación de git y qué usuario impulsó esas confirmaciones.
Para obtener aún más detalles, haga clic en Salida de la consola en el lado izquierdo de la pantalla y verá cada paso de la línea de comando que tomó Jenkins mientras ejecutaba la compilación.

Debido a que esta compilación también incluía un
Get-ChildItem en el espacio de trabajo de Jenkins, se muestra la salida de ese cmdlet en la parte inferior de la salida de la consola similar a la siguiente.

Resumen
Ahora que sabe cómo configurar un servidor Jenkins, instalar complementos y ejecutar un trabajo, debe echar un vistazo a los complementos de Jenkins disponibles en la página Administrar complementos mencionada anteriormente. No todos se adaptarán a sus necesidades, pero todos se ajustan a alguna necesidad y puede valer la pena conocerlos.
Si tiene GitHub Enterprise, puede conectar su cuenta de GitHub a Jenkins para hacer cosas como requerir verificaciones de estado antes de fusionarse con el maestro, automatizar implementaciones desde la fuente y ejecutar una canalización de CI contra cualquier cambio nuevo en el código. ¡Diviértete!