Cómo instalar el servidor de automatización Jenkins con Apache en Ubuntu 20.04

Jenkins es un servidor de automatización gratuito y de código abierto que ayuda a los desarrolladores a construir, probar y desplegar su software. Está basado en Java y proporciona más de 1700 plugins que ayudan a automatizar las tareas repetitivas del proceso de desarrollo de software. Es compatible con varios sistemas operativos, como Windows, Mac OS X y Linux, y puede distribuirse fácilmente en varias máquinas.

En este tutorial, te mostraremos cómo instalar Jenkins con Apache como proxy inverso en Ubuntu 20.04.

Requisitos previos

  • Un servidor que ejecute Ubuntu 20.04.
  • Una contraseña de root configurada el servidor.

Cómo empezar

Antes de empezar, es una buena idea actualizar tu sistema con la última versión. Puedes actualizar tu sistema con el siguiente comando:

apt-get update -y
apt-get upgrade -y

Después de actualizar el sistema, reinícialo para aplicar los cambios.

Instala Java

Jenkins se basa en Java, por lo que debe estar instalado en tu sistema. Si no está instalado, puedes instalarlo ejecutando el siguiente comando:

apt-get install openjdk-11-jdk gnupg2 -y

Una vez instalado, comprueba la versión instalada de Java con el siguiente comando:

java -version

Deberías obtener la siguiente salida:

openjdk version "11.0.8" 2020-07-14
OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu120.04)
OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)

Una vez que hayas terminado, puedes pasar al siguiente paso.

Instalar Jenkins

Por defecto, la última versión de Jenkins no está disponible en el repositorio por defecto de Ubuntu 20.04. Así que tendrás que añadir el repositorio de Jenkins a tu sistema.

Primero, descarga y añade la clave GPG con el siguiente comando:

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

A continuación, añade el repositorio de Jenkins a la APT con el siguiente comando:

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

A continuación, actualiza el repositorio e instala la última versión de Jenkins con el siguiente comando:

apt-get update -y
apt-get install jenkins -y

Después de la instalación con éxito, comprueba el estado de Jenkins con el siguiente comando:

systemctl status jenkins

Deberías ver la siguiente salida:

? jenkins.service - LSB: Start Jenkins at boot time
     Loaded: loaded (/etc/init.d/jenkins; generated)
     Active: active (exited) since Sun 2020-08-09 12:50:35 UTC; 44s ago
       Docs: man:systemd-sysv-generator(8)
      Tasks: 0 (limit: 2353)
     Memory: 0B
     CGroup: /system.slice/jenkins.service

Aug 09 12:50:34 ubuntu2004 systemd[1]: Starting LSB: Start Jenkins at boot time...
Aug 09 12:50:34 ubuntu2004 jenkins[6134]: Correct java version found
Aug 09 12:50:34 ubuntu2004 jenkins[6134]:  * Starting Jenkins Automation Server jenkins
Aug 09 12:50:34 ubuntu2004 su[6180]: (to jenkins) root on none
Aug 09 12:50:34 ubuntu2004 su[6180]: pam_unix(su-l:session): session opened for user jenkins by (uid=0)
Aug 09 12:50:34 ubuntu2004 su[6180]: pam_unix(su-l:session): session closed for user jenkins
Aug 09 12:50:35 ubuntu2004 jenkins[6134]:    ...done.
Aug 09 12:50:35 ubuntu2004 systemd[1]: Started LSB: Start Jenkins at boot time.

En este momento Jenkins se está ejecutando y está escuchando en el puerto 8080. Puedes comprobarlo con el siguiente comando:

netstat -plntu | grep 8080

Deberías ver la siguiente salida:

tcp6       0      0 :::8080                 :::*                    LISTEN      6192/java  

Una vez que hayas terminado, puedes pasar al siguiente paso.

Configurar Apache como proxy inverso

A continuación, tendrás que instalar y configurar Apache como proxy inverso para Jenkins. Así podrás acceder a Jenkins a través del puerto 80.

Primero, instala el servidor web Apache con el siguiente comando:

apt-get install apache2 -y

Después de instalar el servidor web Apache, habilita los módulos necesarios con el siguiente comando:

a2enmod proxy
a2enmod proxy_http

A continuación, crea un archivo de configuración del host virtual de Apache para Jenkins con el siguiente comando:

nano /etc/apache2/sites-available/jenkins.conf

Añade las siguientes líneas:

<Virtualhost *:80>
    ServerName        jenkins.example.com
    ProxyRequests     Off
    ProxyPreserveHost On
    AllowEncodedSlashes NoDecode
 
    <Proxy http://localhost:8080/>
      Order deny,allow
      Allow from all
    </Proxy>
 
    ProxyPass         /  http://localhost:8080/ nocanon
    ProxyPassReverse  /  http://localhost:8080/
    ProxyPassReverse  /  http://jenkins.hakase-labs.io/
</Virtualhost>

Guarda y cierra el archivo cuando hayas terminado. A continuación, habilita el archivo de configuración del host virtual de Apache con el siguiente comando:

a2ensite jenkins

A continuación, reinicia el servicio de Apache y Jenkins para aplicar los cambios:

systemctl reload apache2
systemctl restart jenkins

Ahora puedes comprobar el estado del servicio Apache con el siguiente comando:

systemctl status apache2

Deberías obtener la siguiente salida:

? apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           ??apache2-systemd.conf
   Active: active (running) since Sun 2020-08-10 12:41:30 UTC; 22min ago
  Process: 15407 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
 Main PID: 14417 (apache2)
    Tasks: 11 (limit: 1114)
   CGroup: /system.slice/apache2.service
           ??14417 /usr/sbin/apache2 -k start
           ??15412 /usr/sbin/apache2 -k start
           ??15413 /usr/sbin/apache2 -k start
           ??15414 /usr/sbin/apache2 -k start
           ??15416 /usr/sbin/apache2 -k start
           ??15417 /usr/sbin/apache2 -k start
           ??15418 /usr/sbin/apache2 -k start
           ??15419 /usr/sbin/apache2 -k start
           ??15420 /usr/sbin/apache2 -k start
           ??15422 /usr/sbin/apache2 -k start
           ??15429 /usr/sbin/apache2 -k start

Aug 10 12:41:29 ubuntu20.04 systemd[1]: Starting The Apache HTTP Server...

En este punto, el servidor web Apache está configurado para servir a Jenkins. Ahora puedes pasar al siguiente paso.

Nota: si te conectas a Jenkins a través de Internet, se recomienda asegurar las conexiones con SSL/TLS. Para habilitar SSL mediante Let’s Encrypt usando certbot para la interfaz web de Jenkins, echa un vistazo aquí:

https://www.howtoforge.com/how-to-manage-lets-encrypt-ssl-tls-certificates-with-certbot/

Accede a la interfaz web de Jenkins

Ahora, abre tu navegador web y escribe la URL http://jenkins.example.com. Se te pedirá que introduzcas la contraseña inicial de administrador como se muestra a continuación:

Desbloquear a Jenkins

Puedes ver la contraseña inicial de administrador de Jenkins con el siguiente comando:

cat /var/lib/jenkins/secrets/initialAdminPassword

Deberías ver la contraseña de Jenkins en la siguiente salida:

78d6b10330434b27a09590fc781c9e6d

Escribe la contraseña de la salida anterior en la pantalla de inicio de sesión y haz clic en el botón Continuar. Serás redirigido a la pantalla de personalización de Jenkins:

Instalar plugins de Jenkins

Selecciona la opción que desees y haz clic en ella. Deberías ver la pantalla de instalación de plugins de Jenkins en curso:

Cómo empezar con Jenkins

Una vez que todos los plugins se hayan instalado correctamente, deberías ver la siguiente pantalla:

Crear usuario administrador

Proporciona tu nombre de usuario, contraseña y correo electrónico de administrador y haz clic en el botón Guardar y continuar. Deberías ver la siguiente pantalla:

Configurar Jenkins

Escribe tu URL de Jenkins y haz clic en el botón Guardar y Finalizar. Deberías ver la siguiente pantalla:

Jenkins está listo

Haz clic en el botón«Empezar a usar Jenkins«. Deberías ver el panel de control de Jenkins en la siguiente pantalla:

Panel de control de Jenkins

A continuación, tendrás que configurar las opciones de seguridad estándar de Jenkins.

En el panel izquierdo, haz clic en Gestionar Jenkins => Configurar la seguridad global. Deberías ver la siguiente pantalla:

Gestionar la configuración de Jenkins

Asegura a Jenkins

Ahora, selecciona Seguridad basada en la matriz, añade tu usuario, concede privilegios completos y haz clic en el botón Guardar.

Prueba de Jenkins

Llegados a este punto, Jenkins está instalado y configurado. Es el momento de crear un trabajo de muestra y probar la funcionalidad de Jenkins.

En el panel de control de Jenkins, haz clic en el botón Crear nuevo trabajo. Deberías ver la siguiente pantalla:

Prueba Jenkins

Crear un proyecto jenkins

Proporciona el nombre de tu trabajo, selecciona el proyecto Freestyle y haz clic en el botón Aceptar. Deberías ver la siguiente pantalla:

Comandos de construcción

Ahora, haz clic en la pestaña Construir. En«Añadir paso de construcción», selecciona la opción«Ejecutarshell» y escribe«free -m» en el cuadro de comandos. A continuación, haz clic en el botón Guardar. Deberías ver la siguiente pantalla:

Comprobar el uso de la memoria

Ahora, haz clic en el botón «Construirahora» del panel izquierdo para ejecutar el trabajo. Una vez ejecutado el trabajo, deberías ver la salida de la consola del trabajo ejecutado por Jenkins en la siguiente pantalla:

Resultado de la prueba

Conclusión

Enhorabuena! has instalado con éxito Jenkins con Apache en el servidor Ubuntu 20.04. Ahora puedes utilizar Jenkins en el entorno de desarrollo para acelerar el proceso de desarrollo. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...