enero 11, 2021

Activar Cloudflared Argo Tunnel en el inicio del sistema

Cloudflared te permite proteger y cifrar rápidamente el tráfico de aplicaciones a cualquier tipo de infraestructura, lo que te permite concentrarse en la entrega de aplicaciones excelentes.

Activar Cloudflared Argo Tunnel en el inicio del sistema

Como habiamos visto en el artículo anterior referente a Cloudflared Argo Tunnel en Raspberry Pi, este servicio te permite proteger y cifrar rápidamente el tráfico de aplicaciones a cualquier tipo de infraestructura.

Si bien es cierto que ya sabemos como instalar cloudflared argo en nuestro raspberri pi u otro sistema Linux, sería tedioso tener que estar escribiendo todos los comandos cada vez que se reinicie o apague nuestro dispositivo.

Por esta razón, hoy estaremos viendo como convertir nuestra instalación de Cloudflared Argo Tunnel en un servicio del sistema y pasarle los parametros que nos sean necesarios en el arranque.

Para instalar el servicio de CloudFlared existen dos métodos que podemos utilizar, el automático y el método manual.

En mi caso yo siempre me decanto por el método manual ya que nos pérmite un grado de personalización que muchas veces vamos a necesitar.

Sin más que decir comenzamos.

Primeramente crearemos un usuario que sería el encargado de ejecutar nuestros tuneles en cada arranque.

sudo useradd -s /usr/sbin/nologin -r -M cloudflared

Ahora creamos un archivo de configuración en el que pasaremos los valores de los parámetros que se cargaran al iniciar el servicio.

sudo nano /etc/default/cloudflared

Aunque como nombre del archivo de configuración yo elegi cloudflared por obvias razones, tu puedes elegir el nombre que sea de tu agrado.

# Commandline args for cloudflared, using Cloudflare DNS
CLOUDFLARED_OPTS=--hostname midominio.com  --url localhost:80

Como podemos ver aqui el parámetro es CLOUDFLARED_OPTS y podría ser cualquier otro nombre que desees en el lo que hacemos es cargar cloudflared con el tunel midominio.com y haciendo el tunel hacia el servidor local en el puerto 80, podría ser cualquier otro servicio que tengas instalado.

Ahora le damos permiso a nuestro usuario para el archivo de configuración que hemos creado.

sudo chown cloudflared:cloudflared /etc/default/cloudflared
sudo chown cloudflared:cloudflared /usr/local/bin/cloudflared

Ahora vamos a crear el servicio en la carpeta de servicios /etc/systemd/system/cloudflared.service

sudo nano /etc/systemd/system/cloudflared.service

Puedes copiar y pegar en el archivo que estas creando este código a continuación.

[Unit]
Description=cloudflared mi sitio web local en internet
After=syslog.target network-online.target

[Service]
Type=simple
User=cloudflared
EnvironmentFile=/etc/default/cloudflared
ExecStart=/usr/local/bin/cloudflared $CLOUDFLARED_OPTS
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

Ahora procedemos a habilitar, iniciar y mostrar el status de nuestro servicio.

sudo systemctl enable cloudflared
sudo systemctl start cloudflared
sudo systemctl status cloudflared

Y listo, ya tenemos nuestro servicio corriendo de manera automática cada ves que se arranque el sistema operativo.