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

Así funciona IPv6: configuración en router Linux y Cisco

IPv6 es una actualización del protocolo IPv4 que nace ante la escasez de direcciones que IPv4 permite. Las direcciones IPv6 están formada por 32 caracteres hexadecimales en grupos de cuatro caracteres separados por el carácter dos puntos (:). En este post se recogen varios ejemplos prácticos del funcionamiento de este protocolo.

Leer

Gestión de dispositivos de almacenamiento con Powershell

El módulo Storage de la PowerShell de Windows contiene múltiple cmdlets para gestionar los dispositivos de almacenamiento del sistema. En este post se recoge una lista de cmdlets de este módulo que cumplen diferentes funciones para realizar este trabajo.

Leer

Creación de una VPN de acceso remoto con IPSec

Para la configuración de la VPN de acceso remoto con IPSec se usa una aplicación por software, en este caso, StrongSwan. El escenario cuenta con tres máquinas: un cliente, un servidor y un equipo en la red interna del servidor al que el cliente debe acceder.

Leer