Fabric — это библиотека на языке Python, предназначенная для упрощения удалённого выполнения команд по SSH и автоматизации задач системного администрирования и развёртывания приложений. Она предоставляет инструменты для запуска команд на одном или нескольких удалённых хостах, передачи файлов, управления средой выполнения и объединения последовательностей операций в повторно используемые сценарии. Fabric часто применяется для автоматизации рутинных операций, деплоя кода, настройки серверов и управления группами машин из локального окружения разработчика или администратора.
Изначально разработанная как легковесный фреймворк для автоматизации удалённых задач, Fabric эволюционировала, сохраняя фокус на простоте и выразительности интерфейса. Библиотека интегрируется с существующими инструментами управления конфигурацией и системами контроля версий, при этом предоставляет программируемый API для составления «фабрик» задач — функций, которые можно запускать вручную или как часть автоматизированного процесса. Fabric поддерживает аутентификацию по паролю и по ключам, управление контекстом выполнения и управление потоками ввода-вывода удалённых команд.
- Удалённое выполнение команд: запуск произвольных shell-команд на удалённых хостах через SSH с возможностью получения вывода и кода завершения.
- Параллельное выполнение: поддержка выполнения задач на нескольких хостах одновременно для ускорения операций над кластерами машин.
- Передача файлов: гибкие средства для загрузки и скачивания файлов и директорий между локальной машиной и удалёнными серверами.
- Управление контекстом: механизмы для установки рабочих директорий, переменных окружения и прав доступа на удалённых хостах в пределах выполняемых задач.
- Скрипты и повторное использование: возможность объединять команды в функции и модули для создания переносимых и модульных сценариев автоматизации.
- Аутентификация и безопасность: поддержка ключевой аутентификации SSH, агентов SSH и управления параметрами подключения.
- Интеграция с инструментами разработки: совместимость с системами контроля версий и возможность включения в процессы CI/CD и деплой-пайплайны.
- Лёгкость использования: декларативный и императивный API, ориентированный на простоту записи и чтения задач даже в сложных рабочих процессах.