Metadata-Version: 1.1
Name: nuka
Version: 0.3
Summary: provisioning tool focused on performance.
Home-page: UNKNOWN
Author: Bearstech
Author-email: py@bearstech.com
License: GPLv3
Description-Content-Type: UNKNOWN
Description: .. Do not edit this file. It is generated from docs/index.rst. See docs/utils.py
        
        ================================
        nuka - a provisioning tool
        ================================
        
        .. image::  https://img.shields.io/pypi/l/nuka.svg
          :target: https://pypi.python.org/pypi/nuka
        
        .. image::  https://img.shields.io/pypi/pyversions/nuka.svg
          :target: https://pypi.python.org/pypi/nuka
        
        .. image:: https://travis-ci.org/bearstech/nuka.png?branch=master
          :target: https://travis-ci.org/bearstech/nuka
        
        Because ops can dev.
        
        nuka is a provisioning tool focused on performance. It massively uses Asyncio and SSH.
        It is compatible with docker vagrant and apache-libcloud.
        
        
        Full documentation is available at http://doc.bearstech.com/nuka
        
        Quickstart
        ==========
        
        Install nuka (See `Installation <https://doc.bearstech.com/nuka/install.html>`_
        for detailled steps)::
        
            $ pip install "nuka[full]"
        
        Then start a script:
        
        
        ::
        
            #!/usr/bin/env python3.5
            import nuka
            from nuka.hosts import DockerContainer
            from nuka.tasks import (shell, file)
            
            # setup a docker container using the default image
            host = DockerContainer('mycontainer')
            
            
            async def do_something(host):
            
                # we just echoing something using the shell.command task
                await shell.command(['echo', 'it works'], host=host)
            
                # if no host is provided, then a var named `host` is searched
                # from the stack. Mean that this will works to
                await shell.command(['echo', 'it works too'])
            
            
            async def do_something_else(host):
            
                # log /etc/resolv.conf content
                res = await file.cat('/etc/resolv.conf')
                host.log.info(res.content)
            
            
            # those coroutines will run in parallell
            nuka.run(
                do_something(host),
                do_something_else(host),
            )
        
        Run it using::
        
            $ chmod +x your_file.py
            $ ./your_file.py -v
        
        The first run will be slow because we have to pull the docker image.
        The next run will take approximately 1s.
        
        Get some help::
        
            $ ./your_file.py -h
        
        Look at the generated gantt of your deployement::
        
            $ firefox .nuka/reports/your_file_gantt.html
        
        You'll get a dynamic report like this screenshot:
        
        .. image:: https://doc.bearstech.com/nuka/_images/gantt.png
           :align: center
        
        
Keywords: devops docker vagrant gce
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3.5
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Environment :: Console
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: POSIX
Classifier: Topic :: System :: Systems Administration
