Archivos de Linux Sysadmin

Problemas de escritura con openshift

Espiando trazas de red con tcpdump

Evitando problemas de concurrencia múltiple con flock

Ignorando el proxy de mi empresa: un proxy SOCKS

Montando un servidor docker con Debian Stretch

Autenticación centralizada por claves SSH

Desactivando nuestras APIs con un frontal nginx

El concepto del servidor fachada con Docker

Un servidor de git local con gitolite

Explorando bash: la variable de entorno PROMPT_COMMAND

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

Logs en formato JSON en Nginx

Generación fácil de certificados con easyrsa

Docker 17.05 con multi-stage build

Desarrollando aplicaciones web con python y bottle

Reduciendo el tiempo de build con Docker y su caché

Problemas de log con docker y python

Administrando Docker vía web: Portainer

Testear dominios sin tener el DNS con curl

Una toolbox empaquetada en contenedores

Auditando las acciones de los usuarios de nuestro SFTP

Un entorno web estático con nginx, rsync y docker

Hospedando contenido estático en Github pages

Generadores de contenido web estáticos

Múltiples servicios en un mismo contenedor Docker

Alta disponibilidad con Keepalived

Sincronizando ficheros con ownCloud

Escribiendo un servidor DNS en python con twisted

Compartiendo carpetas con NFS

Un escáner SSL con sslyze

Usando SSH en nuestros scripts python mediante paramiko

Acumulando los logs en un servidor centralizado con Kibana

Un registro local de Docker

Un editor Markdown en javascript

Varios blogs de Ghost en el mismo servidor con Docker y Nginx

Probando virtualhosts con cabeceras HTTP

Documentación fácil con markdown y strapdown.js

Creando un tema para Ghost

Semáforos en linux

Ghost: Un motor para hacer blogs

Levantando túneles SSH con systemd

Visualizando gráficamente el estado de nuestro servidor con Telegraf, InfluxDB y Chronograf

Creando túneles con SSH

Microservicios con docker-compose

Python como una calculadora estadística

Separando el build y el runtime con contenedores Docker

Disparando acciones en respuesta a modificaciones en el sistema de fichero con incron

Lanzando playbooks de Ansible desde Jenkins

Crear jaulas de forma fácil basadas en Debian y Ubuntu con debootstrap

Imágenes docker reusables mediante configuraciones dinámicas

Un servidor pypi local

Creando roles con ansible

Generando passwords complejas con python

Encriptando datos sensibles con Ansible

Escribiendo bots para Telegram

El servidor de aplicaciones uWSGI

Un escritorio con Archlinux

Tipos de volúmenes en Docker

Dirección IP compartida manualmente entre servidores

Instalando una máquina con Archlinux

Balanceando peticiones con HAProxy

Preparando un servidor de repositorios GIT

Un root shell en C

Controlando contenedores docker con ansible

Autenticación SSH por claves

Evolucionando los contenedores: Docker

Reduciendo el tamaño de nuestros binarios con musl libc

Algunas ideas sueltas sobre Ansible

MongoDB sharding con ansible

Un escritorio mínimo con Debian

Consultando una base de datos Oracle en python

Instalando ansible para gestionar servidores

Compilando python desde cero

Sistemas de ficheros multicapa con aufs

Creando un entorno escalable (IV)

Creando un entorno escalable (III)

Creando un entorno escalable (II)

Creando un entorno escalable (I)

Restringiendo accesos mediante certificados de cliente

Haciendo snapshots con LVM

Restringiendo accesos web mediante autenticación básica

Un proxy DNS con dnsmasq

Creando una jaula CentOS

LVM: logical volume manager

Un repositorio de Debian con reprepro

Enjaulado de usuarios para uso de rsync

Empaquetando ficheros .deb

Utilizando apt-cacher-ng para agilizar la instalación de paquetes

Construyendo un RAID 10 en linux

Construyendo una replica set en mongodb

Creación de un livecd con Debian

Virtualizando contenedores LXC tras bridge interno

Creando sistemas de ficheros temporales con tmpfs

Escribiendo units en systemd

Restart automático de servicios con systemd

Liberando memoria caché

Ocultando puertos con port knocking

Virtualizando contenedores LXC con acceso a la red local