Introducción a Jenkins
Jenkins es una herramienta de integración continua de código abierto escrita en Java. Es una de las herramientas más populares para CI/CD debido a su extensibilidad y la gran cantidad de plugins disponibles. Jenkins permite automatizar partes del desarrollo de software relacionadas con la construcción, prueba y despliegue, facilitando la entrega continua.
Características Clave de Jenkins
- Automatización de Tareas: Jenkins puede automatizar tareas repetitivas como la construcción y prueba de software.
- Extensibilidad: Con más de 1,500 plugins disponibles, Jenkins puede integrarse con casi cualquier herramienta de desarrollo.
- Interfaz de Usuario: Jenkins proporciona una interfaz web intuitiva para configurar y monitorear pipelines.
- Soporte Multiplataforma: Jenkins se puede ejecutar en diferentes sistemas operativos como Windows, macOS y Linux.
Instalación de Jenkins
Requisitos Previos
- Java: Jenkins requiere Java para ejecutarse. Asegúrate de tener Java instalado en tu sistema.
- Servidor Web: Aunque Jenkins tiene su propio servidor web embebido, puede integrarse con servidores como Apache o Nginx.
Pasos de Instalación
-
Descargar Jenkins:
- Visita la página oficial de Jenkins: Jenkins Downloads
- Descarga el archivo correspondiente a tu sistema operativo.
-
Instalar Jenkins:
- En sistemas basados en Debian/Ubuntu:
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' sudo apt-get update sudo apt-get install jenkins
- En sistemas basados en Red Hat/CentOS:
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key sudo yum install jenkins
- En sistemas basados en Debian/Ubuntu:
-
Iniciar Jenkins:
- Después de la instalación, inicia Jenkins:
sudo systemctl start jenkins
- Verifica que Jenkins esté corriendo:
sudo systemctl status jenkins
- Después de la instalación, inicia Jenkins:
-
Acceder a Jenkins:
- Abre un navegador web y navega a
http://localhost:8080
. - Sigue las instrucciones en pantalla para completar la configuración inicial.
- Abre un navegador web y navega a
Configuración Básica de Jenkins
Desbloqueo Inicial
- Durante la primera ejecución, Jenkins te pedirá que ingreses una contraseña de administrador que se encuentra en el archivo
/var/lib/jenkins/secrets/initialAdminPassword
.
Instalación de Plugins
- Jenkins te ofrecerá instalar plugins recomendados. Puedes optar por instalar los plugins recomendados o seleccionar los que necesites específicamente.
Creación de un Usuario Administrador
- Después de la instalación de plugins, Jenkins te pedirá que crees un usuario administrador.
Creación de un Pipeline Básico
Conceptos Clave
- Pipeline: Un conjunto de etapas que definen el proceso de construcción, prueba y despliegue.
- Jenkinsfile: Un archivo que contiene la definición del pipeline en formato de código.
Ejemplo de Jenkinsfile
pipeline { agent any stages { stage('Build') { steps { echo 'Building...' // Aquí irían los comandos para construir tu aplicación } } stage('Test') { steps { echo 'Testing...' // Aquí irían los comandos para probar tu aplicación } } stage('Deploy') { steps { echo 'Deploying...' // Aquí irían los comandos para desplegar tu aplicación } } } }
Configuración del Pipeline
-
Crear un Nuevo Job:
- En la interfaz de Jenkins, selecciona "New Item".
- Ingresa un nombre para el job y selecciona "Pipeline".
-
Definir el Pipeline:
- En la sección "Pipeline", selecciona "Pipeline script" y copia el contenido del
Jenkinsfile
de ejemplo.
- En la sección "Pipeline", selecciona "Pipeline script" y copia el contenido del
-
Guardar y Ejecutar:
- Guarda la configuración y ejecuta el job para ver el pipeline en acción.
Ejercicio Práctico
Ejercicio: Configuración de un Pipeline Básico
Objetivo
Configurar un pipeline básico en Jenkins que realice las etapas de construcción, prueba y despliegue.
Pasos
- Instalar Jenkins siguiendo los pasos mencionados anteriormente.
- Crear un nuevo job en Jenkins.
- Definir el pipeline utilizando el
Jenkinsfile
de ejemplo proporcionado. - Ejecutar el pipeline y verificar que las etapas se ejecuten correctamente.
Solución
pipeline { agent any stages { stage('Build') { steps { echo 'Building...' // Aquí irían los comandos para construir tu aplicación } } stage('Test') { steps { echo 'Testing...' // Aquí irían los comandos para probar tu aplicación } } stage('Deploy') { steps { echo 'Deploying...' // Aquí irían los comandos para desplegar tu aplicación } } } }
Conclusión
En esta sección, hemos cubierto los conceptos básicos de Jenkins, incluyendo su instalación, configuración y la creación de un pipeline básico. Jenkins es una herramienta poderosa y flexible que puede integrarse fácilmente en tu flujo de trabajo de CI/CD. En las siguientes secciones, exploraremos otras herramientas y tecnologías que complementan a Jenkins en el ecosistema de CI/CD.
Curso de CI/CD: Integración y Despliegue Continuo
Módulo 1: Introducción a CI/CD
Módulo 2: Integración Continua (CI)
- Introducción a la Integración Continua
- Configuración de un Entorno de CI
- Automatización de la Construcción
- Pruebas Automatizadas
- Integración con Control de Versiones
Módulo 3: Despliegue Continuo (CD)
- Introducción al Despliegue Continuo
- Automatización del Despliegue
- Estrategias de Despliegue
- Monitoreo y Retroalimentación
Módulo 4: Prácticas Avanzadas de CI/CD
Módulo 5: Implementación de CI/CD en Proyectos Reales
Módulo 6: Herramientas y Tecnologías
Módulo 7: Ejercicios Prácticos
- Ejercicio 1: Configuración de un Pipeline Básico
- Ejercicio 2: Integración de Pruebas Automatizadas
- Ejercicio 3: Despliegue en un Entorno de Producción
- Ejercicio 4: Monitoreo y Retroalimentación