GDPR Cookie Consent by FreePrivacyPolicy

Linux Sysadmin

Un servidor de git local con gitolite

A todos nos encanta el sistema de control de versiones git. Tanto a nivel local como a nivel público en GitHub es una maravilla; lo que no me gusta tanto es el precio que suelen tener las soluciones privadas. Sin embargo, y con un poco de habilidad, podemos encontrar alternativas.

Seguir leyendo


Explorando bash: la variable de entorno PROMPT_COMMAND

Los gurús del terminal ya conocemos muchas de las virtudes de bash. Sin embargo, es una utilidad muy grande y no es raro que cada vez que busquemos encontremos cosas nuevas. Esta vez, y casi por curiosidad, encontré una variable llamada PROMPT_COMMAND, que aunque no es conocida, es muy útil.

Seguir leyendo


Exponiendo puertos TCP a través de un firewall con ngrok

A veces tenemos la necesidad de exponer en internet algún puerto TCP de forma temporal, para hacer testing o alguna demo. Ya vimos como podemos hacer esto mediante túneles SSH reversos, aunque no siempre disponemos de un dominio público. En estos casos podemos usar un sistema de túneles llamado ngrok.

Seguir leyendo


Logs en formato JSON en Nginx

Vimos en un artículo anterior como trabajar con herramientas para agregar los logs en un mismo servidor, para su consulta. Algunos formatos de logs necesitan complejas formas de parseado para que puedan servir de base para nuestra consulta, y en el caso de logstash nos conviene un formato JSON válido.

Seguir leyendo


Generación fácil de certificados con easyrsa

Ya vimos en otro artículo como restringir los accesos a una web usando certificados SSL. Sin embargo, la generación de los mismos era un poco confusa. Sin embargo, existe una herramienta llamada easyrsa que nos permite generar peticiones de forma fácil, firmarlas con nuestra CA y obtener el producto final.

Seguir leyendo


Docker 17.05 con multi-stage build

Hacía tiempo que esperaba ansiosamente la nueva versión de docker. La raíz de tanta expectación son las mejoras que la versión candidata anunciaba, especialmente el nuevo modelo de build. Se ha modificado los Dockerfile para que puedan generar varias imágenes en un solo fichero, algunas de ellas partiendo de otras.

Seguir leyendo


Desarrollando aplicaciones web con python y bottle

Ya sabéis que me gusta mucho el lenguaje python. Muchos de mis ejemplos y algunas aplicaciones simples no merecen el uso de un framework tan grande como pueda ser django. Para estos casos me encantan los microframeworks, y aunque hay varias alternativas disponibles, me gusta especialmente un microframework llamado bottle.

Seguir leyendo


Reduciendo el tiempo de build con Docker y su caché

Cuando construimos imágenes docker, muchas veces no somos conscientes del poder de la caché integrada. Si reordenamos algunas instrucciones y aplicamos algún truco, podemos evitarnos el hecho de reconstruir muchas de esas capas, llegando a reducir el tiempo de rebuild a prácticamente cero, siempre y cuando no hayan grandes cambios.

Seguir leyendo


Problemas de log con docker y python

El otro día estaba haciendo un script de python que debía ejecutarse en un contenedor docker. A pesar de la cantidad de verbose que le puse, no era capaz de ver ningún texto cuando miraba los logs. Tras mucha búsqueda, finalmente encontré el culpable en la variable de entorno PYTHONUNBUFFERED.

Seguir leyendo


Administrando Docker vía web: Portainer

El otro día me topé con un desarrollador que quiere desplegar sus contenedores Docker en el servidor de integración, pero no conoce la sintaxis del comando docker y prefiere una interfaz gráfica. Eso me llevó a investigar, buscando una opción bonita, funcional y ligera; al final, me topé con Portainer.

Seguir leyendo


«« « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 » »»