Repolode
pyinfra-dev

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. 1

    Установить pyinfra с помощью uv

    uv tool install pyinfra
  2. 2

    Выполнить команду на SSH-сервере

    pyinfra my-server.net exec -- echo "hello world"
  3. 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 обновляется ежедневно.

Похожие проекты