Fabric
Fabric is a free, open-source Python library for running shell commands remotely over SSH and receiving results as Python objects.
What Fabric is
Fabric is a free, open-source Python library for running shell commands remotely over SSH and receiving results as Python objects. It can target one host or multiple hosts, with serial and parallel execution approaches. Users can also run Python functions or code blocks against individual connections or across several hosts. Fabric makes Python tasks available through the `fab` command-line tool, which supports task parameters and pre- or post-tasks; a comma-separated host list can be used for serial task execution. It builds on Invoke for subprocess and command-line features and Paramiko for SSH protocol support. Documented authentication options include private key files, SSH agents, and passwords. The installation guide recommends `pip install fabric` and lists Python, Invoke, and Paramiko as requirements. The project says modern Fabric can be installed alongside Fabric 1 to support a gradual upgrade. Fabric is listed for Linux, macOS, and Windows. Its documentation notes that each `run` or `sudo` call uses a separate remote shell session, so directory changes do not persist between calls.
Good
- Free and open source
- Supports serial and parallel multi-host execution
- Accepts SSH keys, agents, and passwords
- Runs Python tasks through the `fab` command
Watch out
- Each `run` or `sudo` call has its own shell session
- Adds no GSSAPI support beyond Paramiko's parameters
- Requires Python, Invoke, and Paramiko
Who it suits
Fabric suits Python users who need to automate shell commands over SSH across one or more hosts. It may also fit teams that want to move from Fabric 1 gradually.
Verdict
Fabric brings remote SSH commands and Python task execution together for command-line workflows. Keep its separate-shell behavior in mind when structuring commands.
The facts
Each one read from Fabric's own pages, with the date it was checked.
What it does
- CLI host option
- The `fab` command supports a comma-separated host list for serial task execution.checked 4 Oct 2001
- CLI tasks
- Fabric integrates with Invoke so Python functions can be exposed as command-line tasks through the `fab` command.checked 8 Oct 2001
- Command-line tasks
- Fabric exposes Python tasks through the `fab` command-line tool, with support for task parameters and pre- or post-tasks.checked 4 Oct 2001
- Dependencies
- Fabric builds on Invoke for command execution and task features, and Paramiko for SSH.checked 8 Oct 2001
- Downloads
- Source archives are available through the project’s PyPI page, which also serves as the entry point for pip installation.checked 8 Oct 2001
- GSSAPI limit
- Fabric says it adds no extra GSSAPI support beyond Paramiko’s existing connection parameters.checked 4 Oct 2001
- Host execution
- Fabric supports running commands on individual hosts and across multiple hosts, including serial and parallel approaches.checked 4 Oct 2001
- Installation
- The project recommends installing Fabric with `pip install fabric`.checked 8 Oct 2001
- Legacy compatibility
- The `fabric2` package lets users install modern Fabric alongside Fabric 1, while the project says `fabric3` is an unauthorized fork it does not control.checked 8 Oct 2001
- Limit
- Each `run` or `sudo` call uses its own remote shell session, so commands such as `cd` do not persist between calls.checked 8 Oct 2001
- Maintainer
- The project’s development team is headed by Jeff Forcier, and the site copyright identifies Jeff Forcier.checked 8 Oct 2001
- Multi-host execution
- It can run commands and Python code on individual hosts or across multiple hosts, serially or in parallel.checked 8 Oct 2001
- Purpose
- Fabric is a Python library for running shell commands remotely over SSH and returning Python objects.checked 8 Oct 2001
- Python tasks
- Users can run Python functions or code blocks against individual connections or multiple hosts.checked 4 Oct 2001
- Requirements
- The installation guide lists Python, Invoke, and Paramiko as installation requirements.checked 4 Oct 2001
- Security configuration
- Fabric defaults remote commands to a clean environment instead of copying the local process environment, to avoid leaking local environment data.checked 8 Oct 2001
- SSH authentication
- Fabric supports SSH key files, SSH agents, and password authentication through its connection configuration.checked 8 Oct 2001
- Support
- The project recommends its fab-user mailing list for usage help and also points users to GitHub Issues for bugs.checked 8 Oct 2001
- Supported environment
- The installation page lists Python 2.7 or 3.4+ as requirements, alongside Invoke and Paramiko.checked 8 Oct 2001
- Upgrade path
- The project says modern Fabric can be installed alongside Fabric 1 to allow users to upgrade at their own pace.checked 4 Oct 2001
- What it does
- Fabric is a Python library for running shell commands remotely over SSH and returning Python objects.checked 4 Oct 2001
Alternatives to Fabric
- 1

Puppet
Free planOpen sourceWebAPILinuxmacOS8.3From $120 a month - 2

Rudder
Free planOpen sourceWebAPILinuxSelf-hosted8.2From $3.33 a month - 3

CFEngine
Free planOpen sourceWebAPILinuxmacOS7.7Free plan - 4

Uyuni
Free planOpen sourceWebAPILinuxSelf-hosted7.4Free plan - 5

Google Cloud VM Manager
Free planWebAPILinuxWindows7.1Free plan - 6

Salt
Free planAPILinuxmacOSSelf-hosted7.0Free plan
