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

Instalación de minikube

Minikube es una distribución minimalista de Kubernetes ideal para aprender a usar este orquestador, que instala una distribución de k8s en un único nodo, en este caso, en una máquina virtual usando libvirt y KVM. Para instalar minikube, en primer lugar, se descarga el binario desde el repositorio de Google en el que está publicado.

Leer

Cómo importar dispositivos a GNS3

En muchas ocasiones es habitual necesitar importar dispositivos que no están incluidos en la instalación básica de GNS3 para simular redes similares a las que podemos encontrar en la vida real. En este tutorial hay un par de ejemplos en los que se importan las imágenes de diferentes dispositivos en el simulador.

Leer

Creación de credenciales en Jenkins

Las credenciales en Jenkin se crean en el menú Administrar Jenkins -> Credenciales -> Global -> Add Credentials.

Leer