¿Y los españoles dónde vemos la Final a 4 (de balonmano) de Colonia?

Puede que ya te hayas dado cuenta que en ningún canal de Movistar ni Teledeporte vas a poder ver la Final a 4 de Colonia de la Liga Europea de Balonmano. Solo la podrás ver en Esport 3 en Catalán.

Una de las formas de desbloquear el contenido de Laola1.tv es usar una VPN, eso hará un “túnel” virtual con otro país en el que si está desbloqueado y una vez empiece la transmisión podrás ver el contenido normalmente. Sigue leyendo ¿Y los españoles dónde vemos la Final a 4 (de balonmano) de Colonia?

Monitorizar directorios para ejecutar comandos

Hace poco tiempo escribí un artículo de como configurar Nginx con certificados válidos (gracias a Let’s Encrypt), una de las cosas que estaba incompleta era que al actualizar los certificados con la tarea cron, debíamos además reiniciar Nginx para que use los nuevos certificados. Si no hacemos esto, corremos el peligro de que pese a tener los certificados renovados se muestren como no válidos debido a que está usando los viejos y/o revocados.

Es por ello que hoy vamos a usar la herramienta incron para monitorizar el directorio de los certificados y si estos cambian para bien o para mal, Nginx se reiniciará después de comprobar que la configuración funciona.

También decir que si lo que busca es un tutorial completo de esta herramienta puede leer uno en español aquí o el artículo en el que me he basado para escribir este en inglés.

Requisitos

  • Servidor Linux, este artículo está hecho para servidores debian. Para otros deberá usar el instalador de paquetes de su distribución (CentOS, yum; por poner un ejemplo). Lo demás es exactamente igual.

Instalando incron

Para instalar estas herramientas tan solo debemos ejecutar apt:

$ apt-get install -y incron

Reiniciar Nginx si no hay fallos de configuración

Para hacer esta labor he hecho un script que almaceno en /opt/nginx-restart.sh:

#!/usr/bin/env bash

##
# Script to reload nginx if there are no errors on config files
# Author: Gabriel Trabanco
# Website: www.gabi.uno
##

`which nginx` -t
if [ $? -eq 0 ]  
then  
        echo "Reloading Nginx Configuration"
        /etc/init.d/nginx restart
fi  

Quizás sea más correcto $ service nginx restart no lo sé, yo lo he hecho así sin más y funciona.

El crontab de incron: incrontab

Para utilizar incrontab lo haremos como si de crontab se tratara.
Para ello añadiremos comandos con el formato:

/directorio/a/comprobar TAREA_PARA_MONITORIZAR comando_a_ejecutar

Por ejemplo, para monitorizar los cambios en los certificados y reiniciar nginx yo tengo:

/etc/letsencrypt/live/blog.gabi.com.es IN_MODIFY,IN_CREATE,IN_DELETE /opt/nginx-restart.sh

Usando $ incrontab -e como root

Habréis notado que al tratar de agregar una tarea como root os dice “que os peinéis” y no sé si teneis peine o no pero si que tenéis la solución.
Para poder añadir tareas como root (y en realidad cualquier usuario) debemos de añadir el usuario a la lista de usuarios permitidos a usar incrontab, esta lista se encuentra en /etc/incron.allow

Configurando incron

Una de las cosas que se puede configurar en incron es hacer que en vez de abrirnos el editor de textos nano nos abra vim (por ejemplo y en mi caso) para editar las tareas, para ello debemos abrir el archivo de configuración /etc/incron.conf y en la última línea añadir o modificar la línea comentada (y descomentarla) por:

editor = vim  

Ni que decir que esta sección no es más que una excusa para que sepáis que incron se puede configurar.

Más información

Hay bastantes eventos a los que añadir tareas, te sugiero que mires alguna de las referencias que figuran al pie de página. Recomiendo la fuente que he usado para este artículo, es ligeramente mejor que el artículo en español, de todas formas si no sabes inglés o prefieres leer la documentación en español con lo que digo aquí más el tutorial en español tendrás contenido de sobra.


Fuentes y referencias:

  1. https://www.howtoforge.com/tutorial/trigger-commands-on-file-or-directory-changes-with-incron/
  2. Antigua web oficial con una sección de documentación y preguntas frecuentes suficiente buenas: http://inotify.aiken.cz/
  3. Tutorial en español: http://www.cyberhades.com/2009/01/30/tutorial-de-incron/

Configurando el firewall con iptables

Una de las cosas que más me preocupan en la informática es la seguridad aunque en realidad no tengo ni puñetera idea (con perdón por la expresión). Así que llegó el momento de configurar el corta fuegos, en inglés firewall, del servidor donde se aloja este blog, para que nadie, insisto nadie, pudiera conectarse al blog por el puerto de Ghost por defecto sino solo por el 80 tal y como está ahora (en el futuro también el 443; pero esto es otro post ya que está pendiente de hacer). Puedes probar que no miento, añadiendo :2368 en el dominio y lo que quieras… A tu rollo, eso sí, si consigues petarlo avisame para ver que tengo que cambiar y ayudarme por favor.
La seguridad es muy importante. Sigue leyendo Configurando el firewall con iptables

Docker con Raspberry Pi

Cuando empecé a desplegar este blog me encontré varios problemas a la hora de desplegarlo con docker entero. De hecho ahora mismo es un mix entre Docker y Nginx corriendo en el sistema sin contenedor.

Otro de los problemas era la configuración del firewall y decidí rescatar mi Raspberry Pi para hacer pruebas manteniendo la jerarquía de la web del servidor de producción… Basicamente un mirror para pruebas.

Bien, cuando fui a instalar docker en la Raspberry Pi me encontré con que ARM no estaba soportado y por tanto Raspberry Pi tampoco ya que es el procesador que usa. Para mayor sorpresa todo lo que encontraba (más), estaba pensado para Debian o Arch Linux por lo que tuve que indagar un poco y hacer un mix con lo anterior ya que no quería ni Arch Linux ni Debian, quería Ubuntu que es lo que uso en mi servidor de producción y tenía que ser un entorno de pruebas para el. Sigue leyendo Docker con Raspberry Pi

Arranque automático de contenedores Docker con Systemd

Es interesante personalizar un poco ciertas cosas, por ejemplo debemos establecer una estrategia en la configuración de forma que al reiniciar el servidor todo arranque normalmente o que en caso de fallo la web vuelva a funcionar. Sigue leyendo Arranque automático de contenedores Docker con Systemd