Vagrant環境で開発中のシステムについて、DBの中身を確認したいことがあります。もちろん、VagrantをPublic(Bridge)ネットワークに設定しておけば、通常のサーバのように外部のアプリケーションからアクセス可能です。ただ、MacBookなどで使う場合、en0: Wi-Fi (AirPort)
をブリッジ先に設定していると思いますが、出先ではWiFiに繋がっていない限り、このNICを使うことはできず非常に不便です。
Vagrantは共有の秘密鍵を使っている
$ vagrant ssh
だけで簡単に仮想マシンに入れるのは、Vagrantの便利な点です。残念ながら、GUIアプリケーションから、この恩恵を得ることは出来ませんので、手動で繋ぐ必要があります。デフォルトであれば次が接続情報です。
- 接続先: localhost
- ポート番号: 2222
- 秘密鍵:
~/.vagrant/insecure_private_key
- パスフレーズ: なし
Vagrantは上記コマンドで簡単にログインできるよう、Vagrant Boxの作成者に共通の秘密鍵を使うように推奨しています。同じものが、~/.vagrant/
内に配置されているはずです。
※ローカルのVagrant Box以外でこの鍵を使うのは危険です。VagrantをLANからアクセスできるようにする場合も、別の鍵にした方が良いでしょう。念のため。
SSHでVagrant内にトンネルする
それでは、実際にアプリケーションからアクセスしてみましょう。ここでは、Navicat for MySQLを使って説明します。Navicat Essentialsでも同様のことが可能なはずです。
まず、Vagrant内でデータベースにアクセスするための設定を、Generalタブで。ポートを変更している場合は、それを指定します。
- User Name: 設定したユーザ名 or
root
- Password: 設定したパスワード
Navicatは単体でSSHトンネルの機能を持っているので、Terminalから別途コマンドを叩いておく必要はありません。続けて、SSHタブで前述の接続情報を入力します。Private Keyにはパスを直接キーボードから入力しましょう。パスフレーズは空欄のままでOKです。
設定できたら、Test Connectionを実行して確認します。うまく接続できると、冒頭の画面のようにDBの一覧が表示されます。