Cómo instalar Jenkins en Ubuntu 20.04

Introducción

Al enfrentar tareas técnicas repetitivas, encontrar soluciones de automatización que funcionen puede volverse una tarea en sí. Con Jenkins, un servidor de automatización de código abierto, puede administrar de manera eficiente las tareas, desde la compilación a la implementación de software. Jenkins está basado en Java y puede instalarse desde paquetes de Ubuntu o descargando y ejecutando su archivo de aplicación web (WAR): una colección de archivos que componen una aplicación web completa para ejecutarse en un servidor.

En este tutorial, instalaremos Jenkins en Ubuntu 20.04, iniciaremos el servidor de desarrollo y crearemos un usuario administrativo para que empiece a explorar las funcionalidades de Jenkins. Si bien al final de este tutorial, tendrá un servidor listo para su uso en el ámbito de desarrollo, para proteger esta instalación para la producción, siga la guía Cómo configurar Jenkins con SSL utilizando un proxy inverso de Nginx en Ubuntu 18.04.

Requisitos previos

Para seguir este tutorial, necesitará lo siguiente:

  • Un servidor de Ubuntu 20.04 configurado con un usuario sudo no root y un firewall conforme a la guía de configuración inicial de servidores de Ubuntu 20.04. Recomendamos empezar con al menos 1 GB de RAM. Para asesorarse sobre la planificación de la capacidad de una instalación de Jenkins a escala de producción, consulte las “Recomendaciones de Hardware” de Jenkins.
  • Oracle JDK 11 instalado conforme a nuestros lineamientos sobre la instalación de versiones específicas de OpenJDK en Ubuntu 20.04.

Paso 1: Instalar Jenkins

La versión de Jenkins incluida con los paquetes predeterminados de Ubuntu suele ser anterior a la última versión disponible del propio proyecto. Para asegurarse de tener las correcciones y características más recientes, utilice los paquetes que mantiene el proyecto para instalar Jenkins.

Primero, agregue la clave del repositorio al sistema:

  • wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

Una vez que haya agregado la clave, el sistema devolverá el resultado OK.

A continuación, vamos a anexar la dirección del repositorio de paquetes de Debian a sources.list del servidor:

  • sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

Una vez que se hayan ingresado ambos comandos, ejecutaremos update de manera que apt utilice el nuevo repositorio.

  • sudo apt update

Por último, instalaremos Jenkins y sus dependencias.

  • sudo apt install jenkins

Ahora que Jenkins y sus dependencias están instaladas, iniciaremos el servidor de Jenkins.

Paso 2: Iniciar Jenkins

Iniciemos Jenkins utilizando systemctl:

sudo systemctl start jenkins 

Debido a que systemctl no muestra un resultado de estado, utilizaremos el comando status para verificar que Jenkins se haya iniciado de forma correcta:

  • sudo systemctl status jenkins

Si todo salió bien, la primera parte del resultado de estado mostrará que el servicio está activo y configurado para iniciarse en el arranque:

Output● jenkins.service - LSB: Start Jenkins at boot time    Loaded: loaded (/etc/init.d/jenkins; generated)    Active: active (exited) since Fri 2020-06-05 21:21:46 UTC; 45s ago      Docs: man:systemd-sysv-generator(8)     Tasks: 0 (limit: 1137)    CGroup: /system.slice/jenkins.service 

Ahora que Jenkins está activo y funcionando, ajustaremos las reglas de nuestro firewall para poder acceder a él desde un navegador web a fin de completar la configuración inicial.

Paso 3: Abrir el firewall

Para configurar un firewall UFW, consulte el tutorial Configuración inicial del servidor con Ubuntu 20.04, paso 4: Configurar un firewall básico. De manera predeterminada, Jenkins se ejecuta en el puerto 8080. Utilizaremos ufw para abrir ese puerto:

  • sudo ufw allow 8080

Nota: Si el firewall está desactivado, los siguientes comandos lo activarán y permitirán OpenSSH:

  • sudo ufw allow OpenSSH
  • sudo ufw enable

Compruebe el estado de ufw para confirmar las nuevas reglas:

  • sudo ufw status

Observará que se permite el tráfico desde cualquier lugar al puerto 8080:

OutputStatus: active  To                         Action      From --                         ------      ---- OpenSSH                    ALLOW       Anywhere 8080                       ALLOW       Anywhere OpenSSH (v6)               ALLOW       Anywhere (v6) 8080 (v6)                  ALLOW       Anywhere (v6) 

Ahora que instalamos Jenkins y configuramos el firewall, podemos completar la fase de instalación y abocarnos de lleno en la configuración de Jenkins.

Paso 4: Configurar Jenkins

Para configurar su instalación, visite Jenkins en su puerto predeterminado, 8080, utilizando su nombre de dominio o dirección IP: http://your_server_or_domain:8080

Debería ver la pantalla Unlock Jenkins (Desbloquear Jenkins), que muestra la ubicación de la contraseña inicial:

Pantalla “Unlock Jenkins”

En la ventana de la terminal, utilice el comando cat para mostrar la contraseña:

  • sudo cat /var/lib/jenkins/secrets/initialAdminPassword

Copie la contraseña alfanumérica de 32 caracteres de la terminal, péguela en el campo Administrator password y luego haga clic en Continue.

En la siguiente pantalla se muestra la opción de instalación de complementos sugeridos o selección de complementos específicos:

Pantalla de Customize Jenkins

Haremos clic en la opción Install suggested plugins (Instalar los complementos sugeridos), que iniciará de inmediato el proceso de instalación.

Pantalla Getting Started de Jenkins; instalación de complementos

Una vez finalizada la instalación, se le solicitará configurar el primer usuario administrativo. Es posible omitir este paso y continuar como admin utilizando la contraseña inicial que se usó anteriormente, pero nos tomaremos un momento para crear el usuario.

Nota: El servidor predeterminado de Jenkins NO está cifrado, por lo que los datos ingresados con este formulario no están protegidos. Consulte Cómo configurar Jenkins con SSL utilizando un proxy inverso de Nginx en Ubuntu 20.04 para proteger las credenciales de usuario y la información sobre las compilaciones que se transmite a través de la interfaz web.

Pantalla Create First Admin User de Jenkins

Introduzca el nombre y la contraseña de su usuario:

Creación de usuario de Jenkins

Vera la página Instance Configuration (Configuración de instancia) en la que se le solicitará confirmar la URL que prefiere para su instancia de Jenkins. Confirme el nombre de dominio o la dirección IP de su servidor:

Página Instance Configuration de Jenkins

Después de confirmar la información correspondiente, haga clic en Save and Finish. Como resultado, verá una página de confirmación con el texto “Jenkins is Ready!”, que corrobora que Jenkins está listo:

Pantalla “Jenkins is ready”

Haga clic en Start using Jenkins para visitar el panel principal de Jenkins:

Pantalla “Welcome to Jenkins”

En este punto, habrá completado con éxito la instalación de Jenkins.

Conclusión

A través de este tutorial, instaló Jenkins utilizando los paquetes proporcionados por el proyecto, inició el servidor, abrió el firewall y creó un usuario administrativo. En este momento, podrá comenzar a explorar Jenkins.

Cuando termine de explorar, si quiere seguir utilizando Jenkins, siga la guía sobre Cómo configurar Jenkins con SSL utilizando un proxy inverso de Nginx en Ubuntu 20.04 para proteger sus contraseñas y cualquier información confidencial relacionada con sistemas o productos que se intercambiarán entre su equipo y el servidor en texto simple.

Para obtener más información sobre lo que puede hacer con Jenkins, consulte otros tutoriales sobre el tema:

  • Cómo crear aplicaciones de Android con Jenkins
  • Cómo configurar procesos de integración continua en Jenkins en Ubuntu 16.04