Metadata-Version: 2.1
Name: pyinfra
Version: 0.9.dev3
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: gevent (<2,>1)
Requires-Dist: paramiko (<3,>1)
Requires-Dist: click (>2)
Requires-Dist: colorama (<1)
Requires-Dist: docopt (<1)
Requires-Dist: jinja2 (<3,>2)
Requires-Dist: python-dateutil (<3,>2)
Requires-Dist: six (<2,>1)
Requires-Dist: setuptools
Provides-Extra: dev
Requires-Dist: nose (==1.3.7) ; extra == 'dev'
Requires-Dist: jsontest (==1.3) ; extra == 'dev'
Requires-Dist: coverage (==4.4.1) ; extra == 'dev'
Requires-Dist: mock (==1.3.0) ; extra == 'dev'
Requires-Dist: wheel ; extra == 'dev'
Requires-Dist: twine (==1.9.1) ; extra == 'dev'
Requires-Dist: ipdb (==0.10.3) ; extra == 'dev'
Requires-Dist: ipdbplugin (==1.4.5) ; extra == 'dev'
Requires-Dist: sphinx (==1.7.7) ; extra == 'dev'
Requires-Dist: sphinx-autobuild (==0.7.1) ; extra == 'dev'
Requires-Dist: sphinx-better-theme (==0.1.5) ; extra == 'dev'
Requires-Dist: recommonmark (==0.5.0) ; extra == 'dev'
Requires-Dist: pypandoc (==1.4) ; extra == 'dev'
Requires-Dist: flake8 ; extra == 'dev'
Requires-Dist: flake8-commas ; extra == 'dev'
Requires-Dist: flake8-quotes ; extra == 'dev'
Requires-Dist: flake8-import-order ; extra == 'dev'
Provides-Extra: test
Requires-Dist: nose (==1.3.7) ; extra == 'test'
Requires-Dist: jsontest (==1.3) ; extra == 'test'
Requires-Dist: coverage (==4.4.1) ; extra == 'test'
Requires-Dist: mock (==1.3.0) ; extra == 'test'

.. raw:: html

   <h1>

.. raw:: html

   </h1>

|PyPI version| |Travis.CI status|

pyinfra is designed to automate/provision/manage/deploy servers at
scale.

It can be used for ad-hoc command execution, service deployment,
configuration management; you could say that pyinfra is like a
combination of Ansible + Fabric. It is asynchronous, highly performant
and can target thousands of hosts in parallel. It is entirely configured
in Python, allowing for near-infinite extendability out of the box.

-  `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>`__

When you run pyinfra you’ll see something like:

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

pyinfra was designed 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


