Skip to main content

Connect to databases via ssh tunnel

Project description

A command tool and library to connect to databases with minimal fuss.

To install:

$ pip install tunneler

To run:

$ tunneler name_of_task name_of_connection

As the above command shows, there are two concepts to understand when running tunneler, connections and tasks.

Define connections in a connections.yaml file in your current directory, as follows:

prod:
  remote_host: publicjumpboxservername
  ssh_username: username
  ssh_pkey: |
    -----BEGIN RSA PRIVATE KEY-----
    .......................................
    .......................................
    -----END RSA PRIVATE KEY-----
  private_dburl: postgres://username:password@privatedbservername/databasename
  local_port: 5433

dev:
  .....

Tunneler will use this information to set up a local tunneled post where you can access this database directly.

A connection URL to this local port will then be provided to each task.

There are three inbuilt tasks:

  • test_connection (run this one to check your config is correct)

  • do_full_pg_dump

  • do_schema_pg_dump

So for example to dump the production schema we’d run the following command:

$ tunneler do_schema_pg_dump prod

Custom tasks

Want to define your own tasks? Simply create a tasks.py file (or module) in the current directory.

Define a top level method in this file that accepts a connection url, and that method name will be available as a task.

For instance, the test connection task could be re-implemented as follows:

from sqlbag import S

def test_connection_custom(dburl):
    with S(dburl) as s:
        s.execute('select 1')

You’d then run this as follows:

$ tunneler test_connection_custom prod

Pretty simple.

Project details


Download files

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

Source Distribution

tunneler-0.1.1490665985.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

tunneler-0.1.1490665985-py2.py3-none-any.whl (6.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file tunneler-0.1.1490665985.tar.gz.

File metadata

File hashes

Hashes for tunneler-0.1.1490665985.tar.gz
Algorithm Hash digest
SHA256 f9c58289d0725cfdcf2822fce75315a838fedfb14aa948a3193039ce12f37ebc
MD5 a37817aae508e2996d2c74d531df2cde
BLAKE2b-256 c04ce6f38fbfe05a130c98680d22321d23d8a6679be83f1f7f8886a68373c9c7

See more details on using hashes here.

File details

Details for the file tunneler-0.1.1490665985-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for tunneler-0.1.1490665985-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e0296e850cc0ccc982e9a46b3f91da3e3c5c0544dc90e249108d74ef2cdd7145
MD5 76f321d5c6ee7b9b89aedd4628a9cc3f
BLAKE2b-256 2cd75660766e13708cdf4cf807ab01c3b60e2f34ded34430426658f1e608101d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page