GitHub Action для выполнения команд на удалённых серверах по SSH из CI/CD workflow.
pyinfra-dev/pyinfra
Инструмент автоматизации инфраструктуры: запускает Python-операции и shell-команды на SSH-серверах, локальных машинах и в Docker-контейнерах.
Open source альтернатива:Ansible
- Звёзды
- 6,044
- Форки
- 558
- Открытые issues
- 166
- Последний коммит
- 7 дней назад
Что это?
pyinfra — инструмент автоматизации инфраструктуры, который позволяет описывать конфигурацию серверов и логику развёртывания на Python, а не на YAML. Можно запускать разовые shell-команды сразу на множестве хостов или задавать декларативные операции — например, установку пакетов и управление файлами. pyinfra преобразует их в shell-команды и выполняет на целевых системах.
В качестве целей могут выступать удалённые серверы, доступные по SSH, локальная машина или Docker-контейнеры. Операции идемпотентны, поэтому перед применением изменений их можно просмотреть с помощью diff и пробного запуска. Для отладки доступен вывод stdin, stdout и stderr в реальном времени; уровень подробности можно повышать с помощью соответствующих флагов.
Поскольку pyinfra — обычный Python, в скриптах развёртывания можно использовать всю экосистему Python-пакетов. Проект не требует агентов: на целевой системе нужен только доступ к shell. Также в него входят коннекторы для Docker, Terraform и Vagrant.
Ключевые возможности
- 01Описывайте логику развёртывания на Python, а не на YAML.
- 02Запускайте разовые команды или декларативные операции на SSH-хостах, локальной машине и в Docker-контейнерах.
- 03Идемпотентные операции позволяют просматривать diff и выполнять пробный запуск до применения изменений.
- 04Вывод команд в реальном времени помогает отлаживать сбои на отдельных шагах.
- 05Без агентов: на целевой системе нужен только доступ к shell.
- 06Коннекторы для инвентаризаций Docker, Terraform и Vagrant.
Сценарии использования
- Настройка и развёртывание парка серверов на основе единой кодовой базы на Python.
- Одновременный запуск одной shell-команды на множестве хостов.
- Проверка настройки серверов в локальных Docker-контейнерах до внесения изменений в production.
- Для команд, которым нужна автоматизация в стиле Ansible на Python, а не на YAML.
Быстрый старт
- 1
Установить pyinfra с помощью uv
uv tool install pyinfra - 2
Выполнить команду на SSH-сервере
pyinfra my-server.net exec -- echo "hello world" - 3
Выполнить команду в контейнере Docker
pyinfra @docker/ubuntu exec -- echo "Hello world"
Темы
Частые вопросы
- Что такое pyinfra?
- Инструмент автоматизации инфраструктуры: запускает Python-операции и shell-команды на SSH-серверах, локальных машинах и в Docker-контейнерах. pyinfra — инструмент автоматизации инфраструктуры, который позволяет описывать конфигурацию серверов и логику развёртывания на Python, а не на YAML. Можно запускать разовые shell-команды сразу на множестве хостов или задавать декларативные операции — например, установку пакетов и управление файлами. pyinfra преобразует их в shell-команды и выполняет на целевых системах.
- pyinfra можно использовать бесплатно? Какая у него лицензия?
- pyinfra распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- pyinfra всё ещё поддерживается?
- Активно поддерживается. Последний коммит в pyinfra — 15 окт. 2026 г..
- Для чего можно использовать pyinfra?
- Настройка и развёртывание парка серверов на основе единой кодовой базы на Python. Одновременный запуск одной shell-команды на множестве хостов. Проверка настройки серверов в локальных Docker-контейнерах до внесения изменений в production. Для команд, которым нужна автоматизация в стиле Ansible на Python, а не на YAML.
- Как установить pyinfra?
- Установить pyinfra с помощью uv: uv tool install pyinfra Выполнить команду на SSH-сервере: pyinfra my-server.net exec -- echo "hello world" Выполнить команду в контейнере Docker: pyinfra @docker/ubuntu exec -- echo "Hello world"
- Где скачать pyinfra?
- Исходный код и инструкции по установке — на GitHub: https://github.com/pyinfra-dev/pyinfra
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
CLI для управления инфраструктурой как кодом: планирует и применяет декларативные конфигурации для создания, изменения и версионирования облачных ресурсов и сервисов.
Официальный CLI OVHcloud для управления сервисами, аккаунтами и ресурсами Public Cloud из терминала.
Клиентская библиотека Python для Kubernetes с API, построенным по образцу kubectl, и синхронным и асинхронным интерфейсами (asyncio/trio).
Shell-скрипты для запуска прокси-ядер Clash / Mihomo в Linux: подписки, выбор узлов, Tun mode и встроенная команда doctor.
Открытая система для запуска, управления и масштабирования AI-нагрузок в Kubernetes, Slurm и более чем 20 облаках и у GPU-провайдеров через единый интерфейс.