¿QUÉ ES JENKINS?
Jenkins es un servidor de automatización open source escrito en Java. Está basado en el proyecto Hudson y es, dependiendo de la visión, un fork del proyecto o simplemente un cambio de nombre.
Jenkins ayuda en la automatización de parte del proceso de desarrollo de software mediante integración continua y facilita ciertos aspectos de la entrega continua. Admite herramientas de control de versiones como CVS, Subversion, Git, Mercurial, Perforce y Clearcase y puede ejecutar proyectos basados en Apache Ant y Apache Maven, así como secuencias de comandos de consola y programas por lotes de Windows. Publicado bajo licencia MIT, Jenkins es software libre.
Principales características:
- Puede orquestar cualquier tipo de proceso.
- Utilizada para ejecutar tareas manuales, periódicas o automáticas.
- Cuenta con más de 1400 plugins
- Puede aumentar su capacidad de cómputo añadiendo nuevos agentes o servidores
- Fácil de usar
- Dashboard para visualizar estado de tareas.
También es posible utilizar Jenkins para:
- Permite ejecución de procesos secuenciales
- Monitoreo de procesos
- Permite ejecución a horas determinadas
- Ejecución en base a eventos
- Ejecución distribuida en varias máquinas
- Alertas ante problemas en algún proceso
Web: https://jenkins.io/
Jenkins es un servidor de automatización Open Source
1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL
- Un PC con GNU/Linux Debian 10
- Conexión a Internet (obligatorio)
2.- REQUISITOS PREVIOS
Jenkins necesita tener instalado (a día de hoy) Java 8 o Java 11 en el sistema. Para instalar Java 11 (OpenJDK) en nuestro sistema con GNU//Linux Debian 10, junto a otros programas necesarios como wget, gnupg y apt-transaport-https para soportar HTTPS en los repositorios, es tan sencillo como ejecutar el siguiente comando:
raul@debian:~$ sudo apt-get update
raul@debian:~$ sudo apt-get install openjdk-11-jre apt-transport-https wget gnupg
Una vez que el proceso de instalación ha finalizado, verificaremos la correcta versión de Java con el siguiente comando:
raul@debian:~$ java -version
Y obtendremos una salida similar a la siguiente:
openjdk version "11.0.6" 2020-01-14
OpenJDK Runtime Environment (build 11.0.6+10-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.6+10-post-Debian-1deb10u1, mixed mode, sharing)
3.- INSTALACIÓN DE JENKINS
Instalar Jenkins es muy sencillo. Primero, añadiremos la key de confianza del servidor de Jenkins con el siguiente comando para poder descargar sin problemas Jenkins:
raul@debian:~$ sudo wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
OK
Ahora, htenemos que editar el fichero de repositorios /etc/apt/sources.list y añadir la siguiente línea al fichero:
deb https://pkg.jenkins.io/debian-stable binary/
Una vez añadido el repositorio, actualizaremos la lista de paquetes disponibles e instalaremos Jenkins:
raul@debian:~$ sudo apt-get update
raul@debian:~$ sudo apt-get install jenkins
Para verificar que el servicio de Jenkins ha quedado arrancado tras su instalación, ejecutaremos el siguiente comando. Si el servicio está activo y funcionando, Jenkins se habrá instalado correctamente:
raul@debian:~$ sudo service jenkins status
- jenkins.service - LSB: Start Jenkins at boot time
Loaded: loaded (/etc/init.d/jenkins; generated)
Active: active (exited) since Sun 2020-03-08 18:41:14 CET; 3min 35s ago
Docs: man:systemd-sysv-generator(8)
Tasks: 0 (limit: 846)
Memory: 0B
CGroup: /system.slice/jenkins.service
4.- CONFIGURACIÓN DE JENKINS
Una vez que se ha instalado correctamente Jenkins, abriremos un navegador e introduciremos la URL en el navegador Web, seguida del puerto por defecto 8080. Para este ejemplo se ha utilizado la IP/DIRECCIÓN http://172.26.1.120:8080. Una vez consigamos ver la pantalla de bienvenida, tendremos que buscar la contraseña por defecto ubicada en el fichero resaltado en la imagen siguiente. Cuando tengamos dicha contraseña, la pegaremos en el cuadro inferior y pulsaremos continue:
Contraseña inicial
Una vez introducida la contraseña, se nos abrirá una nueva página en la cual podremos seleccionar los plugins por defecto o personalizar los plugins. En este ejemplo, seleccionaremos la opción de personalizar los plugins a instalar:
Plugins a instalar
En la siguiente pantalla, seleccionaremos los plugins que queramos instalar. Una vez que estén todos los plugins que se necesitan seleccionados, hay que hacer click en install:
Seleccionar los plugins
Ahora comenzará la instalación de los plugins. El proceso puede tardar mas ó menos en función del número de plugins instalados:
Instalando plugins
Ahora crearemos la cuenta de usuario Administrador. Tendremos que completar todos los campos y hacer click en Save and continue:
Usuario de administración
Este campo, por regla general, hay que dejarlo por defecto. Es la dirección de acceso a Jenkins a través de un navegador Web. Hacemos click en Save and Finish:
Dirección Jenkins
Jenkins is Ready! Si hemos conseguido legar hasta aquí, Jenkins se habrá instalado y configurado correctamente. Haremos click en Start using Jenkins para comenzar a usar Jenkins:
Jenkins is Ready!
4.- ACCEDIENDO A JENKINS
Para acceder a Jenkins, hay que introducir la dirección URL y el puerto configurado durante la instalación. Para este ejemplo la dirección es http://172.26.1.120:8080 y el usuario y contraseña son las creadas para el usuario administrador creado también durante la configuración:
Bienvenido a Jenkins
6.- CONFIGURAR UN JOB SENCILLO
Ahora vamos a crear un sencillo JOB que genere automáticamente cada X horas/días/minutos una copia de seguridad de un determinado directorio y que los ficheros se guarden en local (no como artefactos en el servidor de Jenkins). Para ello, haremos click en Nueva Tarea:
Nueva tarea
Introduciremos el nombre de la tarea/job , en este ejemplo el nombre será Prueba y el tipo será un Proyecto de estilo libre:
Nuevo Job de estilo libre
Ahora, en la configuración de la tarea/job, configuraremos para que se ejecute, por ejemplo, cada 5 minutos. La sintaxis es la misma que se usa con el programador de tareas cron de GNU/Linux:
Programar la ejecución de la tarea cada 5 minutos
Añadiremos un Nuevo Paso, y seleccionaremos SHELL. En este ejemplo, el script es muy sencillo y lo que hará el script será hacer una copia cada 5 minutos del directorio /local/log y lo dejará guardado en el mismo directorio con la fecha de la copia:
Pequeño script
En la página principal de Jenkins, podremos ver el nuevo job creado. El job no se ha ejecutado todavía:
Listado de Jobs
Cuando se ejecute automáticamente el job, en la lista de ejecuciones (dentro del Job), podremos ver que efectivamente se ejecuta cada 5 minutos y que las 3 últimas ejecuciones han salido bien:
Listado de ejecuciones
Si queremos ver el resultado de las ejecuciones, se pueden ver desde Console Output:
Logs
Si miramos en el directorio, vemos que efectivamente se están guardando los logs en la máquina donde se ejecuta el Job (en este caso es el mismo servidor de Jenkins):
Ficheros generados
ENJOY!