Freedom251 › Configuration Management Tools
Fabric

What Fabric is
Fabric is a Python library for running shell commands on remote hosts over SSH and receiving results as Python objects. It can work with one host or several, with commands run serially or in parallel. Python functions and code blocks can also be run against individual connections or multiple hosts. For command-line workflows, Fabric exposes Python tasks through the `fab` tool, which supports task parameters and pre- and post-tasks. Its comma-separated host option supports serial task execution. Fabric builds on Invoke for subprocess and command-line features, and Paramiko for SSH protocol support. Its documented authentication options include private key files, SSH agents, and passwords. Installation is recommended through `pip install fabric`; Python, Invoke, and Paramiko are listed as requirements. The project describes modern Fabric as installable alongside Fabric 1, supporting a gradual upgrade. Fabric is free and open source, and is listed for Linux, macOS, and Windows. It uses a self-hosted, agentless deployment model. Each `run` or `sudo` call starts a separate remote shell session, so a command such as `cd` does not carry over to the next call.
Who it suits
Fabric suits Python users who need to run shell commands or Python code on remote hosts over SSH, including across multiple hosts. It is relevant to teams that want to expose Python tasks through a command-line tool and choose serial or parallel execution.
What it does well
- Runs commands across one or multiple hosts, serially or in parallel.
- Supports Python functions and code blocks on remote connections.
- Exposes Python tasks through `fab` with parameters and pre- or post-tasks.
- Documents private key, SSH agent, and password authentication.
- Free and open source; listed for Linux, macOS, and Windows.
What to know first
- Each `run` or `sudo` call starts a separate remote shell session.
- Adds no GSSAPI support beyond Paramiko’s existing connection parameters.
- Requires Python, Invoke, and Paramiko.
Limits
Each `run` or `sudo` call uses its own remote shell session, so changes such as `cd` do not persist between calls. Fabric adds no extra GSSAPI support beyond Paramiko’s existing connection parameters.
Getting started
- Open the Fabric website.
- Install Fabric with `pip install fabric`.
- Ensure Python, Invoke, and Paramiko are available.
- Configure SSH authentication with a private key file, SSH agent, or password.
- Expose Python tasks through `fab` and provide task parameters or a comma-separated host list as needed.
Verdict
Choose Fabric if you want a free, open-source Python library for running SSH commands and Python tasks across remote hosts. Its separate shell session for each `run` or `sudo` call matters when you expect shell state, such as the current directory, to persist between calls.
Questions
How much does Fabric cost?
Fabric is free and open source.
Which operating systems are listed?
Linux, macOS, and Windows.
How do I install Fabric?
The installation guide recommends `pip install fabric` and lists Python, Invoke, and Paramiko as requirements.
Which SSH authentication methods does it document?
Private key files, SSH agents, and password authentication.
Can modern Fabric be installed alongside Fabric 1?
Yes. The project says modern Fabric can be installed alongside Fabric 1 to support upgrading at your own pace.
Who heads the development team?
The project’s development team is headed by Jeff Forcier.
Facts from Fabric's own pages
- CLI host option
- The `fab` command supports a comma-separated host list for serial task execution. · docs.fabfile.org, 4 Oct 2026
- CLI tasks
- Fabric integrates with Invoke so Python functions can be exposed as command-line tasks through the `fab` command. · fabfile.org, 8 Oct 2026
- Command-line tasks
- Fabric exposes Python tasks through the `fab` command-line tool, with support for task parameters and pre- or post-tasks. · fabfile.org, 4 Oct 2026
- Dependencies
- Fabric builds on Invoke for command execution and task features, and Paramiko for SSH. · fabfile.org, 8 Oct 2026
- Downloads
- Source archives are available through the project’s PyPI page, which also serves as the entry point for pip installation. · fabfile.org, 8 Oct 2026
- GSSAPI limit
- Fabric says it adds no extra GSSAPI support beyond Paramiko’s existing connection parameters. · docs.fabfile.org, 4 Oct 2026
- Host execution
- Fabric supports running commands on individual hosts and across multiple hosts, including serial and parallel approaches. · fabfile.org, 4 Oct 2026
- Installation
- The project recommends installing Fabric with `pip install fabric`. · fabfile.org, 8 Oct 2026
- 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. · fabfile.org, 8 Oct 2026
- Limit
- Each `run` or `sudo` call uses its own remote shell session, so commands such as `cd` do not persist between calls. · fabfile.org, 8 Oct 2026
- Maintainer
- The project’s development team is headed by Jeff Forcier, and the site copyright identifies Jeff Forcier. · fabfile.org, 8 Oct 2026
- Multi-host execution
- It can run commands and Python code on individual hosts or across multiple hosts, serially or in parallel. · fabfile.org, 8 Oct 2026
- Purpose
- Fabric is a Python library for running shell commands remotely over SSH and returning Python objects. · fabfile.org, 8 Oct 2026
- Python tasks
- Users can run Python functions or code blocks against individual connections or multiple hosts. · fabfile.org, 4 Oct 2026
- Requirements
- The installation guide lists Python, Invoke, and Paramiko as installation requirements. · fabfile.org, 4 Oct 2026
- Security configuration
- Fabric defaults remote commands to a clean environment instead of copying the local process environment, to avoid leaking local environment data. · docs.fabfile.org, 8 Oct 2026
- SSH authentication
- Fabric supports SSH key files, SSH agents, and password authentication through its connection configuration. · docs.fabfile.org, 8 Oct 2026
- Support
- The project recommends its fab-user mailing list for usage help and also points users to GitHub Issues for bugs. · fabfile.org, 8 Oct 2026
- Supported environment
- The installation page lists Python 2.7 or 3.4+ as requirements, alongside Invoke and Paramiko. · fabfile.org, 8 Oct 2026
- Upgrade path
- The project says modern Fabric can be installed alongside Fabric 1 to allow users to upgrade at their own pace. · fabfile.org, 4 Oct 2026
- What it does
- Fabric is a Python library for running shell commands remotely over SSH and returning Python objects. · fabfile.org, 4 Oct 2026
Where Fabric stands on Freedom251
- Configuration Management Tools#21 of 26