Metadata-Version: 2.1
Name: quickrun
Version: 0.0.5
Summary: Easily run commands and gather info across multiple servers
Home-page: https://github.com/danstewart/quickrun
Author: Dan Stewart
Author-email: git@mail.danstewart.dev
License: GPLv3
Description: # quickrun
        
        quickrun is a module designed to make it easy to run commands and gather info from multiple servers.  
        
        ## Dependencies
        - python3.8
        - jq
        - aws cli (v1)
        
        ---
        
        ## Getting started
        
        #### Setup
        Install:  
        ```
        pip3 install quickrun
        ```
        
        Use:  
        ```python
        import quickrun
        from quickrun.cli.aws import find_instances
        
        # Define instance
        qr = quickrun.QuickRun()
        
        # Configure
        
        qr.servers = [ quickrun.Server(host="my-ip-address-or-hostname", name="my-web-server", user="username") ]
        # or from aws cli
        qr.servers = quickrun.Servers.from_list(find_instances({ 'tag:environment': 'production' }, region='eu-west-1'))
        
        qr.commands = [ quickrun.Command(name="Get openssl version", cmd="openssl version") ]
        qr.formatter = quickrun.formatters.table
        
        # Call
        qr.main()
        qr.display()
        ```
        
        This will display something like:
        ```
                                                    Results
        ┏━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
        ┃ server             ┃ host        ┃ command         ┃ output                     ┃
        ┡━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
        │ my-instance-name-1 │ 192.168.0.1 │ openssl version │ OpenSSL 1.1.1  11 Sep 2018 │
        │ my-instance-name-2 │ 192.168.0.1 │ openssl version │ OpenSSL 1.1.1  11 Sep 2018 │
        │ my-instance-name-3 │ 192.168.0.1 │ openssl version │ OpenSSL 1.1.1  11 Sep 2018 │
        │ my-instance-name-4 │ 192.168.0.1 │ openssl version │ OpenSSL 1.1.1  11 Sep 2018 │
        └────────────────────┴─────────────┴─────────────────┴────────────────────────────┘
        ```
        
        #### Making a script
        
        ##### Option 1: Basic script using some of the functions
        You can just write a normal python script and use some of the functions from this module.  
        See `examples/healthcheck.py` as an example.  
        
        ##### Option 2: Calling out to QuickRun
        There is also the base `QuickRun` class which can be configured and called.  
        See `examples/openssl-version.py` and `examples/list-logs.py` as examples.  
        
        ##### Option 3: Extending QuickRun
        You could also create your own class extending from `QuickRun`.  
        This is handy since you can override the [hook methods](#Hooks).  
        See `examples/get-memory-settings.py` as an example.  
        
        ---
        
        ## Helpers
        
        There are a few core helpers built in to quickrun.    
        
        ##### Formatters
        There are a few formatters defined in `quickrun.formatters`
        -	`default`: Just prints out the python object
        - `none`: Does nothing
        - `fake_shell`: Formats the run as if it was ran directly
        - `table`: Outputs the run as a table
        
        
        ##### aws_cli
        There is also a helpful `quickrun.aws_cli.find_instances()` function that takes a string and region and returns all instances with the `name` tag containing that string.  
        
        ---
        
        ## Hooks
        
        TODO
        
Platform: UNKNOWN
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Description-Content-Type: text/markdown
