Cómo instalar Jenkins en Rocky Linux 9

Jenkins es una herramienta de automatización de código abierto para la Integración Continua/Entrega Continua (CI/CD). Está totalmente escrita en Java con el apoyo de más de 1000 plugins para construir, desplegar y automatizar tu proyecto. Jenkins se ha convertido en una de las principales herramientas de automatización que aceleran tu proceso de desarrollo mediante la automatización. Jenkins integra procesos del ciclo de vida del desarrollo como compilación, documentación, pruebas, paquetes, etapas, despliegue, análisis estático y muchos más.

Jenkins es compatible con múltiples herramientas de control de versiones, como Git, Subversion, Mercurial, CVS, Perforce y RTC. Además, puede ejecutar Apache Ant, Apache Maven, scripts de shell y comandos por lotes de Windows. Jenkins cuenta con un fuerte apoyo de la comunidad, con una amplia documentación y una wiki, lo que hace de Jenkins una de las herramientas de automatización CI/CD más utilizadas. Además, ofrece muchas herramientas, lenguajes y tareas de automatización diferentes para automatizar tu proceso de desarrollo y despliegue.

En este tutorial, instalarás y configurarás Jenkins con un proxy inverso Apache/httpd en un servidor Rocky Linux 9. También asegurarás Jenkins con SSL y firewalld. Por último, crearás una compilación Jenkins sencilla.

Requisitos previos

Para empezar, necesitarás los siguientes requisitos para completar este tutorial:

  • Un servidor Rocky Linux – Este tutorial utiliza la última versión de Rocky Linux 9.
  • Un usuario no root con privilegios de administrador sudo/root.
  • Un nombre de dominio apuntando a una dirección IP del servidor – Este ejemplo utiliza el dominio ‘jenkins.hwdomain.io’.
  • SELinux configurado en modo «permisivo».

Instalación de Java OpenJDK

Jenkins está blad escrito en Java bla bla. En este paso, instalarás Java OpenJDK 11.

El repositorio Rocky Linux por defecto proporciona varias versiones de Java OpenJDK. Para instalar Jenkins, puedes utilizar Java OpenJDK 11 o 17. Este ejemplo utiliza el java OpenJDK 11, ejecuta el comando dnf que aparece a continuación para instalarlo.

sudo dnf install java-11-openjdk

Introduce y cuando se te solicite y pulsa ENTER para continuar.

instalar java

Una vez que Java esté instalado, verifica la versión de Java utilizando el siguiente comando. Deberías tener instalado Java OpenJDK 11 en tu Linux Rocky.

java -version

comprobar java

Añadir Repositorio Jenkins

Jenkins puede desplegarse en múltiples entornos, incluyendo el independiente en máquinas virtuales de este tipo o utilizando tecnología de contenedores como Docker y Kubernetes. Para la distribución Linux, puedes instalar Jenkins mediante paquetes binarios proporcionados por el repositorio Jenkins.

Antes de añadir el repositorio de Jenkins, ejecuta el siguiente comando dnf para instalar los siguientes paquetes.

sudo dnf install wget curl

A continuación, descarga el repositorio de Jenkins para el sistema operativo basado en RHEL mediante el siguiente comando wget. El repositorio se almacenará en‘/etc/yum.repos.d/jenkins.repo‘.

sudo wget -O /etc/yum.repos.d/jenkins.repo \
    https://pkg.jenkins.io/redhat-stable/jenkins.repo

A continuación, importa la clave GPG del repositorio Jenkins a tu sistema mediante el comando rpm que aparece a continuación.

sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

añadir repo

Por último, comprueba la lista del repositorio habilitado en tu sistema mediante el siguiente comando dnf.

sudo dnf repolist

Recibirás una salida que indica que el repositorio Jenkins está disponible en tu sistema, y que estás listo para instalar Jenkins.

comprobar repo

Instalar Jenkins

Con el repositorio añadido, ahora instalarás Jenkins en tu servidor Rocky Linux.

Ejecuta el siguiente comando dnf para instalar Jenkins.

sudo dnf install jenkins

Cuando se te solicite, introduce y para confirmar y pulsa ENTER para continuar. Y comenzará la instalación de Jenkins. En la siguiente salida, instalarás Jenkins v2.361, que es la última versión estable de jenkins (en el momento de escribir esto).

instalar jenkins

A continuación, ejecuta el siguiente comando systemctl para recargar el gestor systemd una vez finalizada la instalación de Jenkins. Tras la instalación, se creará el servicio ‘jenkins’, y este comando aplicará el nuevo servicio a tu sistema.

sudo systemctl daemon-reload

A continuación, inicia y activa el servicio «jenkins» mediante el comando systemctl. Ahora Jenkins debería estar ejecutándose en tu sistema, y se ejecutará automáticamente durante el inicio o arranque.

sudo systemctl start jenkins
sudo systemctl enable jenkins

empezar a activar jenkins

Por último, verifica Jenkins mediante el siguiente comando systemctl.

sudo systemctl status jenkins

Recibirás una salida similar a la siguiente captura de pantalla: el servicio Jenkins se está ejecutando.

comprobar jenkins

Ahora que Jenkins se está ejecutando, puedes iniciar la configuración inicial de Jenkins. Pero, configurarás y ejecutarás Jenkins con Apache/httpd como proxy inverso.

Instalar y configurar httpd como proxy inverso

En este punto, Jenkins es ahora accesible a través del puerto TCP 8080. Para que Jenkins sea más fácil de usar y seguro, instalarás y configurarás el servidor web Apache/httpd como proxy inverso para tu Jenkins.

Antes de empezar, asegúrate de que tienes el nombre de dominio apuntando a tu dirección IP de Rocky Linux y también de que has generado certificados SSL. Puedes utilizar certificados autofirmados o utilizar SSL gratuito de Let’sencrypt.

En primer lugar, instala el servidor web httpd y el paquete mod_ssl mediante el siguiente comando dnf. Introduce y cuando te lo pida y pulsa ENTER para continuar.

sudo dnf install httpd mod_ssl

instalar httpd

El paquete mod_ssl requiere que configures un certificado para localhost. Por tanto, ejecuta el siguiente comando para generar un certificado autofirmado sólo para localhost.

Durante el proceso, se te pedirá que introduzcas información detallada para los certificados SSL. Puedes introducir tus datos y saltar pulsando ENTER.

openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 365 -out /etc/pki/tls/certs/localhost.crt

Una vez instalado el servidor web httpd, crea una nueva configuración de host virtual ‘/etc/httpd/conf.d/jenkins.conf‘ utilizando el siguiente comando del editor nano.

sudo nano /etc/httpd/conf.d/jenkins.conf

Añade la siguiente configuración al archivo. Este ejemplo utiliza el nombre de dominio ‘jenkins.hwdomain.io’ con certificados SSL de Letsencrypt. Por tanto, asegúrate de cambiar el nombre de dominio y la ruta de los certificados SSL.

<VirtualHost *:80>
    ServerAdmin  webmaster@localhost
    Redirect permanent / https://jenkins.hwdomain.io/
</VirtualHost>
<VirtualHost *:443>
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/jenkins.hwdomain.io/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/jenkins.hwdomain.io/privkey.pem
ServerAdmin  webmaster@localhost
ProxyRequests     Off
ProxyPreserveHost On
AllowEncodedSlashes NoDecode
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass         /  http://localhost:8080/ nocanon
ProxyPassReverse  /  http://localhost:8080/
ProxyPassReverse  /  http://jenkins.hwdomain.io/
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
</VirtualHost>

Guarda el archivo y cierra el editor cuando hayas terminado.

A continuación, ejecuta el siguiente comando para verificar la configuración de httpd. Si obtienes una salida como‘Sintaxis OK‘, significa que tienes una configuración httpd adecuada y estás listo para iniciar el servicio httpd.

sudo apachectl configtest

instalar httpd

Inicia y habilita el servicio httpd mediante el siguiente comando systemctl.

sudo systemctl start httpd
sudo systemctl enable httpd

Comprueba el estado del servicio httpd mediante el siguiente comando. Deberías ver que el servicio httpd se está ejecutando y está habilitado, lo que significa que el httpd se iniciará automáticamente al arrancar.

sudo systemctl status httpd

comprobar httpd

En este paso, has instalado el servidor web httpd, lo has configurado como proxy inverso y has habilitado el HTTPS seguro. Pero para acceder a tu instalación de Jenkins, aún necesitas configurar el firewalld en tu servidor Linux Rocky.

Configurar Firewalld

Firewalld es el software cortafuegos por defecto en los sistemas operativos basados en RHEL, incluido Rocky Linux. Está instalado y funcionando por defecto en Rocky Linux. Ahora configurarás el cortafuegos y abrirás el servicio HTTP y HTTPS para permitir el acceso a Jenkins.

Ejecuta el siguiente comando firewall-cmd para añadir los servicios HTTP y HTTPS al firewalld.

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent

Después, recarga el firewalld para aplicar los nuevos cambios y comprueba la lista de servicios habilitados en firewalld.

sudo firewall-cmd --reload
sudo firewall-cmd --list-services

Esto dará el siguiente resultado – Se han añadido los servicios HTTP y HTTPS al firewalld.

configurar firewalld

Con los puertos HTTP y HTTPS abiertos, comenzarás la instalación y configuración inicial de Jenkins a través del navegador web.

Configuración inicial de Jenkins

Antes de iniciar la configuración inicial de Jenkins, ejecuta el siguiente comando para obtener la contraseña inicial de Jenkins. La contraseña inicial de administrador es necesaria la primera vez que se configura Jenkins.

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

contraseña inicial

Ahora abre el navegador web y visita el nombre de dominio de tu instalación de Jenkins (es decir: https://jenkins.hwdomain.io/).

En la primera página, se te pedirá la contraseña inicial de administrador de Jenkins. Pega tu contraseña inicial de Jenkins y haz clic en«Continuar«.

contraseña inicial

Ahora personaliza la instalación de Jenkins instalando algunos plugins. Puedes seleccionar plugins manualmente (para expertos), o puedes seleccionar la opción‘instalar plugins sugeridos‘ para instalar plugins recomendados por Jenkins.

instala los plugins sugeridos

Ahora comenzará la instalación de plugins de Jenkins. Todos esos plugins se instalarán ahora en tu Jenkins.

instalar plugins

Una vez finalizada la instalación de plugins, configurarás el usuario administrador para Jenkins. Introduce los datos, usuario, correo electrónico y contraseña de tu Jenkins, y haz clic en«Guardar y continuar«.

configuración administrativa

A continuación, introduce la URL de Jenkins en la configuración de la instancia. En este ejemplo, Jenkins se ejecuta con el proxy inverso httpd en el dominio «https://jenkins.hwdomain.io/».

Haz clic en «Guardary finalizar» para completar la configuración inicial de Jenkins.

configuración de instancias

Una vez finalizada la configuración inicial de Jenkins, serás redirigido al panel de control de Jenkins.

Panel de Jenkins

Ya has completado la configuración inicial de Jenkins. Con esto en mente, puedes crear y configurar una nueva compilación de Jenkins. Sigue leyendo para aprender sobre Jenkins Build.

Crear la primera compilación Jenkins

En el panel de control de Jenkins, haz clic en el menú Nuevo elemento para crear una nueva compilación Jenkins.

Crear Jenkins Build

Introduce el nombre del proyecto para esta nueva compilación y selecciona el tipo de proyecto. En este ejemplo, crearás una nueva compilación Jenkins«Primera compilación» con el tipo«Proyecto de estilo libre‘.

Haz clic en Aceptar para continuar.

nombre del buil

En la sección«General«, introduce la descripción del proyecto. A continuación, pasa a la sección «Pasos de compilación».

Selecciona el paso de compilación «Ejecutar shell» e introduce el siguiente comando bash.

echo "This is First build on jenkins"

Ahora haz clic en Guardar para confirmar y crear la compilación Jenkins.

crear build jenkins

Ahora serás redirigido a la página de compilación de Jenkins para el proyecto«Primera compilación«.

Haz clic en «Compilar ahora» para iniciar y ejecutar la compilación de Jenkins. Después de ejecutar el proyecto, deberías ver el historial de construcción en la sección «Historial de construcción«.

construir ahora

En la siguiente captura de pantalla, sólo hay un historial de construcción de Jenkins.

historia de la construcción

Haz clic en el historial de construcción número 1 para obtener más detalles de las construcciones de Jenkins. Ahora haz clic en«Salida de la consola» para obtener la salida detallada generada por la compilación de Jenkins.

construir salida

Ya has aprendido a crear y ejecutar compilaciones Jenkins.

Conclusión

En este artículo, has instalado Jenkins en un servidor Rocky Linux 9. También instalaste y configuraste el servidor web Apache2/httpd como proxy inverso para Jenkins y aseguraste la instalación de Jenkins mediante certificados SSL y firewalld.

Además, también has aprendido a realizar la configuración inicial básica de Jenkins y a crear y ejecutar compilaciones de Jenkins mediante la interfaz web de administración de Jenkins.

Ahora que ya tienes totalmente operativo el despliegue de Jenkins, puedes añadir tu proyecto y configurar la compilación de Jenkins para tu aplicación. Además, puedes ampliar la funcionalidad de Jenkins añadiendo plugins adecuados para tu entorno.

También te podría gustar...