Unos apuntes sobre la librería Fabric de Python

La entrada de hoy va a estar centrada en la librería Fabric de Python y sobre todo va para mis apuntes. La biblioteca Fabric de Python es una herramienta para la administración de sistemas y la automatización de tareas. Está diseñada para facilitar la ejecución de comandos en servidores remotos de manera programática, lo que la hace especialmente útil para tareas de implementación, administración de configuraciones y otras operaciones en entornos distribuidos.

Antes de continuar te he comentar una cosa, para que tú decidas si vale la pena dedicarle tiempo o no, a esta herramienta. Ten en cuenta que, aunque Fabric fue una herramienta popular en el pasado, su desarrollo se ha ralentizado y ,según comentan, se sugiere explorar otras opciones más modernas como Ansible, SaltStack, o incluso herramientas basadas en contenedores como Docker para ciertos casos de uso.

Logo oficial de Fabric

Principales características de Fabric

Vamos a ver algunas de las principales características:

  • Ejecución remota de comandos: Fabric permite ejecutar comandos de manera remota en servidores SSH. Podemos enviar comandos de terminal a uno o varios servidores y recibir los resultados.

    from fabric import Connection
     
    with Connection('mi_usuario@mi_servidor'):
        result = run('ls -la')
        print(result)
  • Definición de tareas: Podemos organizar nuestro código en tareas, que son funciones de Python que realizan acciones específicas. Estas tareas pueden ser ejecutadas desde la línea de comandos o desde otras tareas.

    from fabric import task
    @task
    def deploy(c):
        c.run('git pull')
        c.run('docker-compose up -d')
  • Gestión de conexiones: Proporciona una interfaz para gestionar conexiones SSH de manera sencilla, incluida la autenticación y la gestión de claves.
  • Manejo de entornos: Podemos definir entornos para diferentes configuraciones, lo que facilita la ejecución de tareas en diferentes servidores o configuraciones.
  • Modo paralelo: También permite ejecutar tareas en paralelo en varios servidores, lo que puede mejorar significativamente el rendimiento en operaciones que involucren a múltiples máquinas.

Instalación de Fabric en GNU/Linux

En la mayoría de los casos simplemente hemos de utilizar la herramienta «pip«, de la que ya hemos hablado, de la siguiente forma:

pip install fabric

A continuación, puedes crear un archivo de script de Fabric (generalmente llamado fabfile.py) y definir tus tareas y configuraciones según tus necesidades.

También podemos instalar la librería utilizando los repositorios de las principales distribuciones GNU/Linux:

En Debian y Ubuntu
sudo apt-get update
sudo apt-get install fabric
En Fedora y similares
sudo dnf install fabric
En openSUSE
sudo zypper install fabric
En Gentoo
sudo emerge -av dev-python/fabric

Como siempre, si quieres profundizar sobre esta librería, te recomiendo que visites su página web oficial: «Welcome to Fabric!«