Cómo configurar pipelines de CI/CD con Jenkins en Linux
Introducción
La automatización de procesos de integración continua y entrega continua (CI/CD) es fundamental para mejorar la eficiencia y la calidad del desarrollo de software. Este artículo resuelve el problema de cómo configurar pipelines de CI/CD usando Jenkins en un entorno Linux, proporcionando ejemplos prácticos de código y comandos.
Instalando Jenkins en Linux
El primer paso es instalar Jenkins en tu máquina Linux. Los comandos varían dependiendo de la distribución que estés utilizando.
Ubuntu/Debian
# Adicionar a chave GPG do Jenkins
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
# Adicionar o repositório do Jenkins
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
# Atualizar e instalar o Jenkins
sudo apt update
sudo apt install jenkins -yCentOS/RHEL
# Adicionar o repositório do Jenkins
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
# Importar a chave GPG do Jenkins
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
# Instalar o Jenkins
sudo yum install jenkins -yConfigurando Jenkins
Después de la instalación, necesitas iniciar y habilitar el servicio de Jenkins.
# Iniciar o Jenkins
sudo systemctl start jenkins
# Habilitar o Jenkins para iniciar na inicialização
sudo systemctl enable jenkinsAccede a http://seu_ip:8080 para completar la configuración inicial de Jenkins.
Creando un Pipeline Básico
Vamos a crear un pipeline básico para un proyecto simple en Python.
Configuración del Repositorio
Primero, configura tu repositorio Git. Por ejemplo, crea un repositorio en GitHub y agrega un archivo Jenkinsfile en la raíz del proyecto.
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building...'
sh 'python3 -m pytest'
}
}
stage('Test') {
steps {
echo 'Testing...'
sh 'python3 -m pytest'
}
}
}
}Configuración de Jenkins
En Jenkins, crea un nuevo ítem y selecciona "Pipeline". Configura el pipeline para apuntar al repositorio Git.
Ejemplo Avanzado: Pipeline con Ambientes de Stage
Vamos a crear un pipeline más complejo que incluye ambientes de stage (stage y production).
pipeline {
agent any
environment {
AWS_ACCESS_KEY_ID = credentials('aws-access-key-id')
AWS_SECRET_ACCESS_KEY = credentials('aws-secret-access-key')
}
stages {
stage('Build') {
steps {
echo 'Building...'
sh 'python3 -m pytest'
}
}
stage('Deploy to Stage') {
environment {
ENV ='stage'
}
steps {
echo 'Deploying to Stage...'
sh 'ansible-playbook deploy.yml -e env=${ENV}'
}
}
stage('Deploy to Production') {
environment {
ENV = 'production'
}
when {
branch 'main'
}
steps {
echo 'Deploying to Production...'
sh 'ansible-playbook deploy.yml -e env=${ENV}'
}
}
}
}¿Por qué es importante / Cuándo usar
Configurar pipelines de CI/CD con Jenkins es crucial para automatizar el proceso de desarrollo, prueba y despliegue de aplicaciones. Esto reduce el tiempo de entrega, mejora la calidad del software y permite una mayor colaboración entre equipos. Usa este método cuando necesites una automatización robusta y escalable para tus proyectos de desarrollo.
Conexión con Certificaciones LPI/CompTIA
Dominar la configuración de pipelines de CI/CD con Jenkins es una habilidad valiosa para profesionales de TI que buscan certificaciones como LPI y CompTIA. Estas certificaciones valoran conocimientos prácticos y la capacidad de automatizar procesos, lo cual es directamente aplicable al uso de Jenkins en entornos Linux.
Eso fue solo una pieza. El curso enseña el camino completo — desde tu primer comando hasta el día del examen.