mind.

学んだことの記録

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

Vagrantrails 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 sSSHでの接続は成功するはずです。

==> 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の開発環境を構築していけばテスト環境が完成します。

learning-mind.hatenablog.com

感想

Vagrantいいですね。色々できそうだ。