TGViewer
Библиотека девопса | DevOps, SRE, Sysadmin Библиотека девопса | DevOps, SRE, Sysadmin @devopsslib · 10.4K subscribers
Post #4813 1.12K
🐍 Ansible, но на чистом Python

Управлять инфраструктурой через Ansible значит писать YAML. pyinfra убирает это из уравнения: деплой описывается обычным Python-кодом, без DSL и без новых концепций для изучения.

pyinfra решает именно это: вы описываете деплой обычным Python-кодом, без DSL и без новых концепций для изучения.

Что делает pyinfra

Превращает Python-скрипты в shell-команды и выполняет их на серверах по SSH, в Docker-контейнерах или локально. Работает без агентов, на целевых машинах ничего устанавливать не нужно.

Операции идемпотентны: если пакет уже установлен, повторный запуск ничего не сломает.

Установка:
pip install pyinfra


Быстрый старт прямо из CLI

Установить пакет на удалённый сервер или в Docker-контейнер в одну строку:
# На удалённый сервер
pyinfra my-server.net apt.packages iftop update=true _sudo=true

# В Docker-контейнер
pyinfra @docker/ubuntu apt.packages iftop update=true _sudo=true


Полноценный деплой-скрипт

Те же операции, оформленные в файл deploy.py:
from pyinfra.operations import apt, systemd

apt.packages(
name="Установить nginx",
packages=["nginx"],
update=True,
_sudo=True,
)

systemd.service(
name="Запустить и включить nginx",
service="nginx.service",
running=True,
restarted=True,
enabled=True,
)


Инвентарь описывается в Python-файле inventory.py:
targets = ["web-1.example.com", "web-2.example.com", "@docker/ubuntu"]


Запуск:
pyinfra inventory.py deploy.py


Что важно знать

В скриптах доступен весь Python-экосистем: циклы, условия, импорт любых библиотек вроде boto3 или requests. Можно получать инвентарь из Terraform, работать с Docker и Vagrant. Перед реальным применением изменений можно сделать dry-run через флаг --dry.

Запуск с выводом всех команд для отладки:
pyinfra inventory.py deploy.py -v


pyinfra хорошо подходит командам, которые уже пишут на Python и хотят управлять инфраструктурой без перехода на отдельный язык конфигурации.

➡️ Репозиторий

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека devops'a

#арсенал_инженера
  • ❤ 3
More from @devopsslib
  1. Sep 18, 2026От исходного кода до процессора: разберись, как работает программа 💻 Стартует практически…
  2. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  3. Sep 15, 2026👩‍💻 Bash-скрипт для мониторинга сервисов Полноценный мониторинг вроде Zabbix или Prometh…
  4. Sep 13, 2026🌸 Вселенная намекает: пора уже начать этот курс С 14 сентября цены в Proglib Academy выра…
  5. Sep 13, 2026🤪 Если бы можно было задать один вопрос про AI в разработке — что бы вы спросили? Как выб…
  6. Sep 10, 2026Планы на 3 октября — прийти на RWB Infra x Security Meetup Мы направим прожекторы на инфра…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →