Disparar un pipeline de Jenkins desde GitHub usando Ngrok

Índice

Jenkins se integra con Ngrok para hacer accesible el servidor Jenkins local a servicios en Internet como, por ejemplo, GitHub. Para poder exponer Jenkins a Internet es necesario crear una URL de Ngrok.

Ngrok se debe instalar en la misma máquina que el servidor Jenkins.

curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc \
	| sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null \
	&& echo "deb https://ngrok-agent.s3.amazonaws.com buster main" \
	| sudo tee /etc/apt/sources.list.d/ngrok.list \
	&& sudo apt update \
	&& sudo apt install ngrok

A continuación, se añade el token de autenticación a la cuenta de Ngrok.

ngrok config add-authtoken <TOKEN>

El servidor Jenkins local expone el puerto 8080, así que para hacerlo accesible a otros servicios se crea una URL que apunte al puerto 8080 de la máquina:

ngrok http http://localhost:8080

Así, se crea una URL para acceder a Jenkins desde Internet.

ngrok                                                                                                                   (Ctrl+C to quit)
                                                                                                                                        
Sign up to try new private endpoints https://ngrok.com/new-features-update?ref=private                                                  
                                                                                                                                        
Session Status                online                                                                                                    
Account                       Javi (Plan: Free)                                                                                         
Version                       3.20.0                                                                                                    
Region                        Europe (eu)                                                                                               
Latency                       47ms                                                                                                      
Web Interface                 http://127.0.0.1:4040                                                                                     
Forwarding                    https://3bdc-185-197-91-248.ngrok-free.app -> http://localhost:8080                                       
                                                                                                                                        
Connections                   ttl     opn     rt1     rt5     p50     p90                                                               
                              0       0       0.00    0.00    0.00    0.00  

Para que Jenkins pueda usar el webhook necesita tener instalado el complemento de GitHub. Este complemento se instala en Administrar Jenkins -> Plugins.

Además, en Administrar Jenkins -> Tools debe indicarse la ruta al ejecutable de git.

En el repositorio de GitHub en el que se quiera configurar el webhook hay que acceder al repositorio -> settings -> webhooks y añadir un webhook indicando la URL proporcionada por ngork y terminada en /github-webhook/: https://3bdc-185-197-91-248.ngrok-free.app/github-webhook/.

En el proyecto de Jenkins se marca la opción GitHub hook trigger for GITScm polling.

comments powered by Disqus

Relacionados

Certificado HTTP y SSL

En esta entrada se explica cómo se puede generar un certificado HTTPS para un servidor web creando una Autoridad Certificadora propia y cómo configurar un servidor web Apache2 o Nginx para usar el certificado.

Leer

Despliegue de una aplicación en Kubernetes usando Helm

Helm es una herramienta que permite instalar aplicaciones en un cluster de Kubernetes de forma sencilla en pocos pasos.

Leer

Instalación de Oracle Cloud Infrastructure OCI CLI

La herramienta para la línea de comandos de Oracle Cloud Infrastructure es un recurso muy útil para gestionar un arrendamiento en OCI. Es espacialmente práctica si se combina con otras herramientas para la gestión de infraestructura como código.

Leer