BashFlow– Automatización ligera y extensible con Bash
Framework modular en Bash para automatización distribuida, inspirado en la filosofía de Ansible pero optimizado para entornos shell-friendly.
Este proyecto está bajo la licencia GNU GPLv3 para garantizar que BashFlow y cualquier derivado permanezcan libres y abiertos.
BashFlow. Idea y el Porqué
La automatización mediante procesos bash es uno de los primeros conceptos existentes en la historia de los servidores. El proceso se ha intentado mejorar usando las ventajas de los nuevos lenguajes de programación, como es Python y se ha "encapsulado" en un nuevo paradigma de la automatización Ansible que parece ser es el que se está convirtiendo en un estandar.
Sin embargo usando Ansible, que depende totalmente de Python hay que pelear con el problema de dependencias e incompatibilidad entre los módulos de python y sus versiones, tanto en el servidor que ejecuta la automatización, como con la versiones de Python de los servidores administrados.
Mi propuesta es crear una herramienta de automatización inspirada en Ansible pero basada en Bash.
Esta solución tiene mucho sentido si lo que buscas es simplicidad, portabilidad y evitar el infierno de dependencias de Python.
Bash es ubicuo, ligero y muy estable en entornos Unix-like.
Mi propuesta, es un proyecto que he denominado BashFlow
.
El nombre lo he elegido por las siguiente razones, suena moderno, ágil y transmite justo lo que queremos: flujo de automatización con Bash, sin complicaciones.
Un nombre que hace referencia a una herramienta profesional pero accesible, y además es fácil de recordar y pronunciar en cualquier idioma.
BashFlow. Diseño Base y Punto de partida
La idea inicial es incorporar una sintaxis tipo YAML en BashFlow.
Permitimos que los usuarios actuales de Ansible se sientan en terreno familiar, se facilita la lectura declarativa de tareas, y mantiene la flexibilidad de Bash como motor de ejecución.
Ejemplo de playbook para bashflow
usando sintaxis yaml.
En este ejemplo el playbook usa el modulo package.sh
para realizar 2 tareas:
- Actualizar el Sistema Operativo de modo completo (tanto si está basado en paquetería .deb o .rpm)
- Actualizaciones de Seguridad, si el servidor está basado en RPM, el sistema solo realiza la actualizacion de los parches de seguirad (en Debian se corresponde con una actualización completa)
tasks:
- name: Actualizar sistema completo
module: package
args:
state: system-update
update_type: full
become: true
- name: Aplicar parches de seguridad (solo RPM)
module: package
args:
state: system-update
update_type: security
become: true
Si por ejemplo nos quedamos con la primera tarea del playbook lo podemos ejecutar de la siguiente forma:
./bashflow.sh -f /tmp/update_so.yaml -h soloconlinux
Y se realizará la actualización del S.O del servidor soloconlinux:

Módulos y Documentación
la idea es que la herramienta pueda crecer simplemente incorporando y mejorando sus módulos, estos módulos son scripts en bash que realizan el trabajo duro que se le indica en el playbook.
Además en importante el mantener documentado todo, por lo que el propio framework de BashFlow incluye su propio documentador.
Su uso es tan sencilo como escribir en la línea de comando:
core/utils/module-docgen.sh
✅ Documentación generada en docs/modules-list.md
El fichero que se genera se muestra así:

Repositorio
El código de todo el proyecto está disponible en GitHub para permitir que cualquiera pueda colaborar en él.
Repositorio oficial de BashFlow
En la estructura basica del proyecto hay 3 directorios diferenciados:
core/
: módulos base y utilidadescommunity_modules/
: módulos especializados o experimentalesuser_modules/
: módulos propios del usuario o de una organización
Colaborar en el proyecto
Para colaborar en el proyecto tan sólo tienes que hacer lo siguiente:
- Haz un fork del repositorio
- Crea una rama descriptiva
- Realiza tus cambios
- Abre un Pull Request con descripción clara
Revisa la documentación que va a estar en evolución continua para mejorar el desarrollo de los módulos.
Para estar al tanto del avance de BashFlow
te recomiendo sigas el proyecto desde GitHub.
Allí ire incorporando todas las nuevas funcionalidades, documentación y mejoras