Skip to main content

Create Database SSH Tunnel for Azerothcore World of Warcraft MySQL Database

Project description

https://github.com/MacHu-GWU/acore_db_ssh_tunnel-project/workflows/CI/badge.svg https://img.shields.io/pypi/v/acore-db-ssh-tunnel.svg https://img.shields.io/pypi/l/acore-db-ssh-tunnel.svg https://img.shields.io/pypi/pyversions/acore-db-ssh-tunnel.svg https://img.shields.io/badge/Release_History!--None.svg?style=social https://img.shields.io/badge/STAR_Me_on_GitHub!--None.svg?style=social
https://img.shields.io/badge/Link-Install-blue.svg https://img.shields.io/badge/Link-GitHub-blue.svg https://img.shields.io/badge/Link-Submit_Issue-blue.svg https://img.shields.io/badge/Link-Request_Feature-blue.svg https://img.shields.io/badge/Link-Download-blue.svg

Welcome to acore_db_ssh_tunnel Documentation

出于安全考虑, 通常数据库都会被部署到私网中, 是不允许直接从公网访问的. 为了能让开发者从工具配置齐全的开发电脑连接到数据库, 通常采用跳板机 + SSH Tunnel 技术实现. 具体方法是用 SSH 和 EC2 的秘钥在本地机器上建立一个 tunnel, 所有本来要发送到 Database domain 的流量都发送到 127.0.0.1, 然后 SSH 会自动将流量发送到跳板机, 然后堡垒机再发送到 Database.

本项目将创建, 关闭, 查看, 以及测试 SSH Tunnel 的方法封装成了一个 Python package, 以便于在 Python 代码中使用.

用例

from acore_db_ssh_tunnel import api

def create_ssh_tunnel():
    api.create_ssh_tunnel(
        path_pem_file=path_pem_file,
        db_host=db_host,
        db_port=db_port,
        jump_host_username=jump_host_username,
        jump_host_public_ip=jump_host_public_ip,
    )


def list_ssh_tunnel():
    api.list_ssh_tunnel(path_pem_file)


def test_ssh_tunnel():
    api.test_ssh_tunnel(
        db_port=db_port,
        db_username=db_username,
        db_password=db_password,
        db_name=db_name,
    )


def kill_ssh_tunnel():
    api.kill_ssh_tunnel(path_pem_file)


# edit the following variables to your own
db_host = "my-server.1a2b3c4d5e6f.us-east-1.rds.amazonaws.com"
db_port = 3306
db_username = "admin"
db_password = "admin"
db_name = "my_database"
jump_host_username = "ubuntu"
jump_host_public_ip = "111.111.111.111"
path_pem_file = "/Users/myusername/ec2-key.pem"

# create_ssh_tunnel() # run this first
# list_ssh_tunnel() # then this
# test_ssh_tunnel() # then this
# kill_ssh_tunnel() # then clean up

Install

acore_db_ssh_tunnel is released on PyPI, so all you need is to:

$ pip install acore-db-ssh-tunnel

To upgrade to latest version:

$ pip install --upgrade acore-db-ssh-tunnel

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

acore_db_ssh_tunnel-0.1.3.tar.gz (14.6 kB view hashes)

Uploaded Source

Built Distribution

acore_db_ssh_tunnel-0.1.3-py3-none-any.whl (13.4 kB view hashes)

Uploaded Python 3

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