Popularity
5.3
Growing
Activity
9.5
Declining
1,375
30
137

README

PyPI version PyPi downloads Docs status Execute tests status Codecov Coverage MIT Licensed

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 --dry runs 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 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 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.py

or

pyinfra @docker/ubuntu deploy.py

Documentation


*Note that all licence references and agreements mentioned in the pyinfra README section above are relevant to that project's source code only.