railsアプリ(puma)のサーバを立ち上げた時にsshトンネルも一緒に立ち上げる

bin/rails serverを実行時にバックグラウンドで ssh -i proxy-server.pem -ND 1081 bitnami@XX.XX.XX.XX を実行するpumaプラグインを作りました。プロセスが終了すると再び実行します。

このpumaプラグインは、sshトンネルを作ることに限定したものではなく、shellスクリプトを実行します。
https://github.com/jiikko/puma-plugin-shellscript

設定方法は、 ENV['PUMA_PLUGIN_SHELLSCRIPT']に実行したいコマンドを設定してplugin :shellscript を呼び出すだけです。

# config/puma.rb
ENV['PUMA_PLUGIN_SHELLSCRIPT'] = 'ssh -i proxy-server.pem -ND 1081 bitnami@XX.XX.XX.XX'
plugin :shellscript

以下は、socksifyを使ってrubyからproxyサーバに接続をしている例です。

TCPSocket.socks_server = 'XX.XX.XX.XX'
TCPSocket.socks_port = 1081

動かしているツールで、必須となるプログラムを一緒に立ち上げることができて運用が楽になりました。

以上。