创建按需ssh隧道的zc.buildout方法
mete0r.recipe.sshtunnel的Python项目详细描述
Mete0r.Recipe.sshtunnel
制作按需ssh隧道的zc.buildout方法,即ssh -L, 使用systemdsocket activation。
要求
Local side | Remote side |
^{tt2}$ | ^{tt3}$ |
^{tt4}$ | ^{tt5}$ |
使用示例
注意!
这个包裹正在计划阶段。一切都可以随时改变。
在buildout.cfg中,定义一个zc.recipe.deployment部分:
[buildout] parts = tunnel [foo] recipe = zc.recipe.deployment prefix = FOO-DIR etc-user = MY-USERNAME user = MY-USERNAME ...
然后在展开中定义隧道套接字:
[foo-db] recipe = mete0r.recipe.sshtunnel deployment = foo socket.name = mysql.sock ssh.process.user = MY-USERNAME ssh.hostname = 192.168.0.2 remote.bind = 127.0.0.1:3306
在构建运行时,将创建两个systemd单元文件:
$ ls -l ~/.config/systemd/user/ foo-db.socket foo-db@.service
然后您可以启动监听插座:
$ systemctl --user start foo-db.socket $ systemctl --user list-sockets --all LISTEN UNIT ACTIVATES FOO-DIR/var/run/foo/mysql.sock foo-db.socket foo-db@0.service
测试:
$ mysql --socket=FOO-DIR/var/run/foo/mysql.sock
使其保持:
$ systemctl --user enable foo-db.socket
开发环境
设置开发环境:
python setup.py virtualenv make
更改
0.0.1(2016-11-10)
- 修复非根用户的服务单元“user=”配置。
0.0.0(2016-11-10)
- 初次发布。