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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file tunneler-0.1.1490665985.tar.gz
.
File metadata
- Download URL: tunneler-0.1.1490665985.tar.gz
- Upload date:
- Size: 3.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9c58289d0725cfdcf2822fce75315a838fedfb14aa948a3193039ce12f37ebc |
|
MD5 | a37817aae508e2996d2c74d531df2cde |
|
BLAKE2b-256 | c04ce6f38fbfe05a130c98680d22321d23d8a6679be83f1f7f8886a68373c9c7 |
File details
Details for the file tunneler-0.1.1490665985-py2.py3-none-any.whl
.
File metadata
- Download URL: tunneler-0.1.1490665985-py2.py3-none-any.whl
- Upload date:
- Size: 6.9 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0296e850cc0ccc982e9a46b3f91da3e3c5c0544dc90e249108d74ef2cdd7145 |
|
MD5 | 76f321d5c6ee7b9b89aedd4628a9cc3f |
|
BLAKE2b-256 | 2cd75660766e13708cdf4cf807ab01c3b60e2f34ded34430426658f1e608101d |