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

Conceptos básicos del gestor de paquetes apt

En este post se recoge un breve resumen sobre la información relativa a los gestores de paquetes apt y aptitude incluida en el manual de referencia de Debian

Leer

Ejemplos de uso del comando parted en Debian

Parted es un programa que manipula particiones de disco. Soporta múltiples formatos de tablas de particiones como MS-DOS y GPT. Es útil para crear espacio para nuevos sistemas operativos, reorganizar el uso del disco y copiar su contenido a un nuevo disco duro.

Leer

Configuración de ACL en routers Cisco

Las ACL o listas de control de acceso son un mecanismo que permite controlar el tráfico que atraviesa en router en una red. En este post se demuestra el funcionamiento de las ACL en los routers Cisco con un escenario basado en los personajes de la saga “Los juegos del hambre”.

Leer