Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Python
Code

Empezando con la biblioteca Fabric de Python

by
Difficulty:AdvancedLength:ShortLanguages:

Spanish (Español) translation by Carlos (you can also view the original English article)

Fabric es una biblioteca de Python y una herramienta de línea de comandos para facilitar el uso de SSH para el despliegue de aplicaciones o tareas de administración de sistemas. Fabric es muy simple y potente y puede ayudar a automatizar tareas repetitivas de línea de comandos. Este enfoque puede ahorrar tiempo al automatizar todo tu flujo de trabajo.

Este tutorial tratará cómo utilizar Fabric para integrarse con SSH y automatizar tareas.

Instalación

Fabric se instala mejor mediante pip:

Empezando con Fabric

Uso

A continuación hay una función simple que demuestra cómo usar Fabric.

El programa anterior se guarda como fabfile.py en tu directorio de trabajo actual. La función de bienvenida se puede ejecutar con la herramienta fab de la siguiente forma:

Fabric proporciona el comando fab que lee su configuración desde un archivo, fabfile.py. El archivo debe estar en el directorio desde el que se ejecuta el comando. Un fabfile estándar contiene las funciones que se ejecutarán en un host remoto o en un grupo de hosts remotos.

Funciones

Fabric implementa funciones que se pueden usar para comunicarse con hosts remotos:

fabric.operations.run()

Esta operación se utiliza para ejecutar un comando de shell en un host remoto.

Ejemplos

fabric.operations.get()

Esta función se utiliza para descargar archivos de un host remoto. El siguiente ejemplo muestra cómo descargar una copia de seguridad de un servidor remoto.

fabric.operations.put()

Esta función sube archivo(s) a un host remoto. Por ejemplo:

fabric.operations.reboot()

Como el nombre indica, esta función reinicia un servidor del sistema.

fabric.operations.sudo()

Esta función se utiliza para ejecutar comandos en un host remoto con privilegios de superusuario. Asimismo, también puede pasar un argumento de un usuario adicional que te permite ejecutar comandos como otro usuario que no sea root.

Ejemplo

fabric.operations.local()

Esta función se utiliza para ejecutar un comando en el sistema local. Un ejemplo sería:

fabric.operations.prompt()

La función le indica al usuario con texto y le devuelve la entrada.

Ejemplos

fabric.operations.require()

Esta función se utiliza para comprobar las claves dadas en un entorno compartido dict. Si no se encuentran, la operación se aborta.

Integración de SSH

Una de las maneras en que los desarrolladores interactúan con los servidores remotos además de los clientes FTP es a través de SSH. SSH se utiliza para conectarse a servidores remotos y hacer todo, desde la configuración básica hasta ejecutar Git o iniciar un servidor web.

Con Fabric, puedes realizar actividades de SSH desde tu computadora local.

En el ejemplo siguiente se definen funciones que muestran cómo revisar el espacio libre en el disco y el tipo de host. También define qué host ejecutará el comando:

Para ejecutar este código, tendrás que ejecutar el siguiente comando en la terminal:

Salida

Automatización de tareas

Fabric te permite ejecutar comandos en un servidor remoto sin necesidad de iniciar sesión en el servidor remoto.

La ejecución remota con Fabric puede generar amenazas de seguridad, pues requiere un puerto SSH abierto, especialmente en máquinas Linux.

Por ejemplo, supongamos que deseas actualizar las bibliotecas del sistema en tu servidor remoto. No es necesario que ejecutes las tareas constantemente. Simplemente tienes que escribir un simple archivo fab que ejecutarás cada vez que quieras ejecutar las tareas.

En este caso, primero importarás el módulo de la API de Fabric:

Define el host remoto que deseas actualizar:

Establece el nombre de usuario del host remoto:

Aunque no es recomendable, quizá necesites especificar la contraseña del host remoto.

Finalmente, define la función que actualiza las bibliotecas de tu host remoto.

Ahora que tu archivo fab está listo, todo lo que tienes que hacer es ejecutarlo de la siguiente forma:

Deberías ver el siguiente resultado:

Si no has definido la contraseña, se te pedirá hacerlo.

Después de que el programa haya terminado de ejecutar los comandos definidos, obtendrás la siguiente respuesta, si no se producen errores:

Conclusión

En este tutorial se ha tratado lo que se necesita para comenzar con Fabric localmente y en hosts remotos. Ahora puedes empezar a escribir con confianza tus propios scripts para crear, monitorizar o mantener servidores remotos.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.