pyinfra automates/provisions/manages/deploys infrastructure super fast at massive scale. It can be used for ad-hoc command execution, service deployment, configuration management and more. Core design features include:
🚀Super fast execution over thousands of targets with predictable performance.
🚨Instant debugging with stdout + stderr output on error, and
-vto print it always.
💻Agentless execution by speaking native SSH/Docker/subprocess depending on the target.
❗️Two stage process that enables
--dryruns before making any changes.
📦Extendable with any Python package as configured & written in standard Python.
🔌Integrated with Docker, Vagrant/Mech & Ansible out of the box.
When you run pyinfra you'll see something like (non animated version):
pyinfra can be installed via pip:
pip install pyinfra
Now you can execute commands & operations over SSH:
# Execute an arbitrary shell command pyinfra my-server.net exec -- echo "hello world" # Install iftop apt package if not present pyinfra my-server.net apt.packages iftop sudo=true update=true
These can then be saved to a deploy file, let's call it
from pyinfra.operations import apt apt.packages( name='Ensure iftop is installed', packages=['iftop'], sudo=True, update=True, )
And executed with:
pyinfra my-server.net deploy.py
pyinfra @docker/ubuntu deploy.py