Skip to main content

PyPI version Travis.CI status

pyinfra automates service deployment. It does this by diff-ing the state of the server with the state defined in the deploy script. Deploys are asyncronous and highly performant. The inventory & deploy are managed with pure Python, allowing for near-infinite extendability.

Design Features

pyinfra was designed from day one to enable ops to deploy things in a consistent, debuggable and maintainable manner. Notable design decisions:

  • outputs shell commands and files to upload

  • two-step deploy that enables dry-runs

  • fail fast where possible (eg touching a directory)

  • -v means print out remote stdout & stderr in realtime

  • always print raw stderr on operation failure for instant debugging

  • uses pure, 100% Python for the inventory and deploy scripts

    • with operations/hooks to safely use Python mid-deploy

  • properly agentless - even Python isn’t required on the remote side (just a shell!)

Development

pyinfra is still under heavy development, and while the CLI/API should be considered fairly stable there’s no guarantee of no breaking changes until v1. There are a number of critical specifications to be properly fleshed out before the v1 release:

  • spec/docs for roles/sub-deploys

  • spec/docs for extension modules/facts

  • spec/docs for extension deploys

To develop pyinfra itself:

# Create a virtualenv
venv create pyinfra

# Install pyinfra in dev mode, with dev requirements
pip install -e .[dev]

Use nosetests or the bundled helper script to run tests. This helper script also counts coverage:

# Test everything (API, modules & facts)
scripts/test.sh

# Set individual bits
scripts/test.sh [api|modules|facts]

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyinfra-0.2.2.tar.gz (64.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyinfra-0.2.2-py2.py3-none-any.whl (92.5 kB view details)

Uploaded Python 2Python 3

File details

Details for the file pyinfra-0.2.2.tar.gz.

File metadata

  • Download URL: pyinfra-0.2.2.tar.gz
  • Upload date:
  • Size: 64.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pyinfra-0.2.2.tar.gz
Algorithm Hash digest
SHA256 221bd02ea7e127ce28a59708d831905f37bbc99cd558b9ae37012e02fe6715df
MD5 e4a23f36289afef2b93b2e213bb3ab50
BLAKE2b-256 45c4b4317e1266ef51236898d1f6cfba6442a0a4ca68aed842d6b60c41773541

See more details on using hashes here.

File details

Details for the file pyinfra-0.2.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pyinfra-0.2.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 65e81e0d09a5a8377cb63124946e44a196711cdf864e0907d9f5de6acea323d5
MD5 da9d9a6f81a3e4ce98c8bd9aceb68727
BLAKE2b-256 b65cae0558efa7577be8ae4653ec5b5ee92f3aa5f593fd9b81b2efc050d72833

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.2

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page