Preparando un servidor de repositorios GIT

Algunas veces tenemos necesidad de crear un proyecto con un equipo pequeño y necesitamos versionarlo en un sitio accesible para todos los participantes involucrados. El precio de soluciones en la nube suele ser prohibitivo, y montar una solución gráfica puede ser demasiado. Lo podemos hacer simplemente usando git y ssh …

Seguir leyendo

Un root shell en C

Cuando operamos un servidor de producción es habitual que no tengamos acceso habitual al usuario root, e incluso lo tengan altamente vigilado. Podemos intentar dejar una puerta trasera, por ejemplo poniendo un binario con el setuid bit activado, te pueden pillar. Sin embargo es posible dejar una puerta abierta oculta …

Seguir leyendo

Controlando contenedores docker con ansible

La facilidad de levantar un contenedor docker nos lleva a la pregunta del millón: ¿es posible usar docker para crear contenedores de usar y tirar para probar otras tecnologías? La respuesta es que sí, y para demostrarlo, vamos a generar un entorno minimalista en contenedores docker, desplegados mediante ansible playbooks …

Seguir leyendo

Autenticación SSH por claves

A pesar de que el protocolo SSH es lo que mas seguridad ofrece hoy en día, un servidor rápido puede probar gran cantidad de contraseñas generadas mediante un generador por fuerza bruta. Para añadir mas seguridad podemos autenticar mediante claves en vez de usar contraseña, opcionalmente protegidos con una passphrase …

Seguir leyendo

Evolucionando los contenedores: Docker

Los contenedores tienen su caso de uso y son muy útiles. Sin embargo, ir copiando la imagen es una pérdida de tiempo. Aunque podemos solventar el problema con un sistema de ficheros copy-on-write o un sistema de ficheros tipo union, Docker ya nos lo ofrece todo preparado para su uso …

Seguir leyendo

Reduciendo el tamaño de nuestros binarios con musl libc

Cuando construimos jaulas, por el motivo que sea, vemos que no quedan pequeñas. El problema es el conjunto de librerías que hay que poner en el caso de los binarios dinámicos, o el exceso de tamaño en el caso de los estáticos. Cambiando la librería base, podemos reducir su tamaño …

Seguir leyendo

Algunas ideas sueltas sobre Ansible

En un artículo anterior vimos qué era Ansible y como instalarlo, dejando su funcionamiento para el lector; Hay miles de tutoriales por internet, y muchos son mejores de los que pueda poner aquí. Sin embargo, hay algunas ideas que no son fáciles de ver juntas, así que aquí las dejo …

Seguir leyendo

MongoDB sharding con ansible

Como ya vimos en un artículo anterior, los replica sets nos ofrecen alta disponibilidad para nuestros despliegues de mongodb. Sin embargo, algunas veces, necesitamos que nuestro cluster ofrezca alto rendimiento, y esto se consigue mediante sharding. Como no queremos renunciar a la alta disponibilidad, podemos aplicar ambas; hoy explicamos como …

Seguir leyendo

Un escritorio mínimo con Debian

Harto de distribuciones para escritorio cargados con aplicaciones que no se usan, decidí que esta vez iba a instalar un escritorio de trabajo partiendo de una Debian netinstall. El resto va a ser instalar las aplicaciones justas y necesarias para nuestro trabajo diario. En este artículo describo como lo hice …

Seguir leyendo

Consultando una base de datos Oracle en python

El otro día estuve optimizando unos scripts hechos en bash que había hecho otro. Como resultado del lenguaje usado era un caos de comandos, muchos de ellos para limpiar la salida y darle la forma adecuada. Los reescribí en python usando la librería cx_Oracle, que compilé en un fichero wheel …

Seguir leyendo