pyinfra превращает код Python в команды оболочки и запускает их на ваших серверах. Выполняйте специальные команды и записывайте декларативные операции. Целевые SSH-серверы, локальный компьютер и контейнеры Docker. Быстро и масштабируется от одного сервера до тысяч. Думайте ansible
но о Python вместо YAML, и это намного быстрее.
Документация • Помощь и поддержка • Участие
Почему пиинфра? К конструктивным особенностям относятся:
-vvv
). Установите pyinfra с помощью pip
:
pip install pyinfra
Теперь вы можете выполнять команды на хостах через SSH:
pyinfra my-server.net exec -- echo " hello world "
Или нацельтесь на контейнеры Docker, локальный компьютер и другие соединители:
pyinfra @docker/ubuntu exec -- echo " Hello world "
pyinfra @local exec -- echo " Hello world "
Помимо выполнения команд, вы можете определять состояние с помощью операций:
# Install iftop apt package if not present
pyinfra @docker/ubuntu apt.packages iftop update=true _sudo=true
Затем его можно сохранить в виде файла Python, например deploy.py
:
from pyinfra . operations import apt
apt . packages (
name = "Ensure iftop is installed" ,
packages = [ 'iftop' ],
update = True ,
_sudo = True ,
)
Хосты также можно сохранить в файле, например inventory.py
:
targets = [ "@docker/ubuntu" , "my-test-server.net" ]
И выполнили вместе:
pyinfra inventory.py deploy.py
Теперь вы знаете строительные блоки pyinfra! Объединив инвентарь, операции и код Python, вы можете развернуть что угодно.
См. более подробное руководство по началу работы или использованию руководств по эксплуатации. Узнайте, как использовать инвентарь и данные, глобальные аргументы и интерфейс командной строки, или ознакомьтесь с документированными примерами.