Skip to main content

quickrun

quickrun is a module designed to make it easy to run commands and gather info from multiple servers.

Dependencies

  • python3.8
  • aws cli (v1)

Getting started

Setup

Install:

pip3 install quickrun

Use:

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', 'tag:name': '*web*' }, 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.
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
cli.aws

There is also a helpful quickrun.cli.aws.find_instances() function that takes a dict of filters and returns matching instances.

Example:

find_instances({ 'tag:name': 'web', 'tag:environment': 'prod' }, region='eu-west-1')
cli.helpers

There is a collection of misc CLI helpers in quickrun.cli.helpers.
Currently there is only challenge(expect: str) -> bool which prompts the user to re-enter a value.


Hooks

TODO

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quickrun-0.0.8.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quickrun-0.0.8-py3-none-any.whl (19.7 kB view details)

Uploaded Python 3

File details

Details for the file quickrun-0.0.8.tar.gz.

File metadata

  • Download URL: quickrun-0.0.8.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.5

File hashes

Hashes for quickrun-0.0.8.tar.gz
Algorithm Hash digest
SHA256 2922ae7336e1134e2c5112eb3951c2671d64b165ecab3467c2db3711043ecec1
MD5 46d3fce7e4a9cc73d2ecdba2e2a92792
BLAKE2b-256 ad655c179f945cc956556076608b9f5743c0b46c5ba5b783652c57baeef2f5cc

See more details on using hashes here.

File details

Details for the file quickrun-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: quickrun-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 19.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.5

File hashes

Hashes for quickrun-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 10d2b4e835f6df2ae32ca2c907d5c62a7e632ec47ced4c468fa8df40fd241125
MD5 384f9bebc5b0471718bb802da3a00c4e
BLAKE2b-256 42e04680637fa94ac3c634ca9b2a6164b6acefbf731b213f1c9a0382f79547e2

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.8 This release

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

1 file

0.0.2

1 file

0.0.1

1 file

Supported by

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