Metadata-Version: 2.0
Name: pyinfra
Version: 0.5.dev2
Summary: Deploy stuff by diff-ing the state you want against the remote server.
Home-page: http://github.com/Fizzadar/pyinfra
Author: Nick / Fizzadar
Author-email: pointlessrambler@gmail.com
License: MIT
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: System :: Systems Administration
Requires-Dist: click (>2)
Requires-Dist: colorama (<1)
Requires-Dist: docopt (<1)
Requires-Dist: gevent (>1,<2)
Requires-Dist: jinja2 (>2,<3)
Requires-Dist: paramiko (<3,>1)
Requires-Dist: python-dateutil (>2,<3)
Requires-Dist: setuptools
Requires-Dist: six (>1,<2)
Provides-Extra: dev
Requires-Dist: coverage (==4.4.1); extra == 'dev'
Requires-Dist: ipdb (==0.10.3); extra == 'dev'
Requires-Dist: ipdbplugin (==1.4.5); extra == 'dev'
Requires-Dist: jsontest (==1.3); extra == 'dev'
Requires-Dist: mock (==1.3.0); extra == 'dev'
Requires-Dist: nose (==1.3.7); extra == 'dev'
Requires-Dist: pypandoc (==1.4); extra == 'dev'
Requires-Dist: sphinx (==1.6.2); extra == 'dev'
Requires-Dist: sphinx-autobuild (==0.6.0); extra == 'dev'
Requires-Dist: sphinx-better-theme (==0.13); extra == 'dev'
Requires-Dist: twine (==1.9.1); extra == 'dev'
Requires-Dist: wheel; extra == 'dev'
Provides-Extra: test
Requires-Dist: coverage (==4.4.1); extra == 'test'
Requires-Dist: jsontest (==1.3); extra == 'test'
Requires-Dist: mock (==1.3.0); extra == 'test'
Requires-Dist: nose (==1.3.7); extra == 'test'

pyinfra
=======

|PyPI version| |Travis.CI status|

pyinfra manages the state of one or more servers. It can be used for
app/service deployment, config management and ad-hoc command execution.
Deploys are asynchronous, highly performant and can target thousands of
hosts in parallel. The inventory of servers and deploy state are written
in Python, allowing for near-infinite extendability. pyinfra is
available via the command line and as a Python API.

-  `Getting
   started <https://pyinfra.readthedocs.org/page/getting_started.html>`__
-  `Documentation <https://pyinfra.readthedocs.org>`__
-  `Example deploy <example>`__
-  `API
   Example <https://pyinfra.readthedocs.org/page/api/example.html>`__
-  `How the deploy
   works <https://pyinfra.readthedocs.org/page/deploy_process.html>`__

Design Features
---------------

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

-  properly agentless - even Python isn’t required on the remote side
   (just a shell!)
-  always print raw stderr on operation failure for *instant* debugging
-  ``-v`` means print out remote stdout & stderr in realtime
-  outputs shell commands and files to upload
-  two-step deploy that enables dry-runs
-  fail fast where possible (eg touching a directory)
-  uses pure, 100% Python for the inventory and deploy scripts

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

.. |PyPI version| image:: https://badge.fury.io/py/pyinfra.svg
   :target: https://pypi.python.org/pypi/pyinfra
.. |Travis.CI status| image:: https://travis-ci.org/Fizzadar/pyinfra.svg?branch=develop
   :target: https://travis-ci.org/Fizzadar/pyinfra


