Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

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.3.dev0.tar.gz (64.9 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.3.dev0-py2.py3-none-any.whl (93.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file pyinfra-0.3.dev0.tar.gz.

File metadata

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

File hashes

Hashes for pyinfra-0.3.dev0.tar.gz
Algorithm Hash digest
SHA256 651e33fd47232cb5a4e348ddfde2e3246f917804cadd7d3a1b54db51935f9ec0
MD5 8e08e6dd3ef3c8e2cae080c74b02dee7
BLAKE2b-256 0ef97760fe6d329e078e2e573bcfb405e4113d9b3f846e1c6298b36c8e672b09

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyinfra-0.3.dev0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2ba1b12658b031c1afe1b28cbc212221b6e63ebdf3dff3f4186b91ba920f8c68
MD5 8fc03a77d0f5e50c9f3fcaacd7def904
BLAKE2b-256 fc80550b7ad7a844cb1998ac4da1bac7e2cb3fc655e9bd2163035bd5e02494c4

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

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