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

Metadata

Release files for quickrun 0.0.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for quickrun 0.0.8
File Size Uploaded
quickrun-0.0.8.tar.gz 7.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for quickrun 0.0.8
File Interpreter ABI Platform
quickrun-0.0.8-py3-none-any.whl Python 3 none any Details

Total release size: 27.2 kB

Release files / quickrun-0.0.8.tar.gz

Download URL quickrun-0.0.8.tar.gz
Size 7.4 kB
Tags Source
SHA-256 checksum
How to use checksums
2922ae7336e1134e2c5112eb3951c2671d64b165ecab3467c2db3711043ecec1
BLAKE2b-256 checksum
How to use checksums
ad655c179f945cc956556076608b9f5743c0b46c5ba5b783652c57baeef2f5cc
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / quickrun-0.0.8-py3-none-any.whl

Download URL quickrun-0.0.8-py3-none-any.whl
Size 19.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
10d2b4e835f6df2ae32ca2c907d5c62a7e632ec47ced4c468fa8df40fd241125
BLAKE2b-256 checksum
How to use checksums
42e04680637fa94ac3c634ca9b2a6164b6acefbf731b213f1c9a0382f79547e2
Upload date
Uploaded using Trusted Publishing?
What is 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

Release history Release notifications | RSS feed

This release

0.0.8 This release

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page