VagrantでWindowsにRailsのテスト環境を構築する
アドベントカレンダーが無くてもブログを書く習慣を続けていきたい。
なぜVagrantなのか
手元でWebアプリの動作確認ができる環境が欲しかったからです。
最近Railsを使ったWebアプリを作ろうとしているのですが、本番サーバーと手元で動作確認をするためのサーバーの環境が違うと上手く動作しないということがありました。
Windowsを使っていると、ただ単にRailsをインストールしただけではubuntu等と同じように動きませんでした。
Vagrantのインストール
↓ここからインストーラをダウンロードできます。
www.vagrantup.com
Virtualboxのインストール
Vagrant2.2.6はVirtualbox6.1をサポートしていないようで、この後行うvagrant up
を実行してもエラーになります。
Virtualboxは6.0をインストールすることにします。
www.virtualbox.org
Vagrantfileのダウンロード
ubuntu18.04で環境を構築するので、Vagrant boxは下記を選択しました。
app.vagrantup.com
セキュリティの観点では自分でboxを作るべきなのでしょうが、今回は用途が個人制作のWebアプリのテスト環境ということですのでセキュリティはそれ程気にしていません。
作業時間を短縮させるためにVagrant Cloudの力を借ります。
Newタブをクリックすると表示されるコマンドを任意のディレクトリで実行します。
コマンドプロンプト
vagrant init bento/ubuntu-18.04 vagrant up
Vagrantでrails serverが実行できるようにする
先程ダウンロードしてきたVagrantfileを編集してRailsのデフォルトのポート番号である3000番を受け付けるようにします。
↓こちらの記事を参考にしました。
qiita.com
下記をVagrantfileに記載します。
config.vm.network :forwarded_port, guest: 3000, host: 3000
記載する場所は下記の通りです。
Vagrant.configure("2") do |config| ~ config.vm.network :forwarded_port, guest: 3000, host: 3000 ~ end
Vagrant.configure("2") do |config|
とend
の間ですね。
Vagrantを起動する
Vagrantfileのあるディレクトリで下記を実行します。
コマンドプロンプト
vagrant up
下記のようなログが出力されていればrails s
とSSHでの接続は成功するはずです。
==> default: Forwarding ports... default: 3000 (guest) => 3000 (host) (adapter 1) default: 22 (guest) => 2222 (host) (adapter 1)
SSHで接続
Teratermを使用します。
127.0.0.1:2222
に接続します。
ユーザー名およびパスワード共にvagrant
です。
ubuntuが起動しました。
後は以前の記事のようにRailsの開発環境を構築していけばテスト環境が完成します。
感想
Vagrantいいですね。色々できそうだ。