ryanwersal / pyinfra

pyinfra automates infrastructure super fast at massive scale. It can be used for ad-hoc command execution, service deployment, configuration management and more.

Home Page:https://pyinfra.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PyPI version Docs status Travis.CI status Codecov Coverage MIT Licensed PyPI - Downloads

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 -v to print it always.
  • πŸ’» Agentless execution by speaking native SSH/Docker/subprocess depending on the target.
  • ❗️ Two stage process that enables --dry runs 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):

Quickstart

pyinfra can be installed via pip:

pip install pyinfra

Now you can execute commands & operations over SSH:

# Execute an abitrary 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.modules import apt

apt.packages(
    {'Install iftop'},
    'iftop',
    sudo=True,
    update=True,
)

And executed with:

pyinfra my-server.net deploy.py

or

pyinfra @docker/ubuntu deploy.py

Documentation

About

pyinfra automates infrastructure super fast at massive scale. It can be used for ad-hoc command execution, service deployment, configuration management and more.

https://pyinfra.com

License:MIT License


Languages

Language:Python 99.5%Language:Shell 0.5%