Disparar un pipeline de Jenkins desde GitHub usando Ngrok
- Francisco Javier Huete
- Implantacion
- March 9, 2025
Í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
.