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 hosts with predictable performance.π¨ Instant debugging with stdout & stderr output on error or as required (-v|-vv|-vvv).π¦ Extendable with any Python package as configured & written in standard Python.π» Agentless execution against SSH/Docker/subprocess/winrm hosts.βοΈ Two stage process that enables--dryruns before executing any changes.π Integrated with Docker, Vagrant/Mech & Ansible out of the box.
When you run pyinfra you'll see something like (non animated version):
Quickstart
pyinfra can be installed via pip:
pip install pyinfraNow 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=trueThese can then be saved to a deploy file, let's call it deploy.py:
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.pyor
pyinfra @docker/ubuntu deploy.py
