[Mac] たったの10分!! Vagrantで Ruby on Rails 5 を自動構築

2018年1月30日

 

Mac上にVagrantでUbuntuゲストOSを作成して、
その中にRuby on Rails 5を自動で構築します。

うまく行けば10分かからずに、
Rails5環境を構築できるかと思います。
(PCのスペック、ネット環境には依存します。)

ちなみに構築した際のホストPCのスペックは
ホストOS: Mac OS X 10.12.2(メモリ8GB)です。

1.Virtual Boxインストール

ここからMac用のものをダウンロード
http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html?ssSourceSiteId=otnjp

 

2.Vagrantインストール

インストールはこちらから
https://www.vagrantup.com/

Downloadをクリック

Vagrant Top

Macのリンクを選択

Vagrant ダウンロード画面

ターミナルでインストールされたか確認

 vagrant --version

エラーが出なければOK

 

3.Vagrant Box作成

適当なフォルダにVagrantフォルダを作成
mkdir ~/Vagrant

Vagrant 初期化
vagrant init ubuntu/xenial64

 

4.Vagrantfile編集

vagrant init の後にVagrantfileというのがあるので
それを編集
編集箇所は3箇所

プライベートアドレス設定

27行目あたり
config.vm.networkのコメントアウトを外す

# Create a private network, which allows host-only access to the machine
 # using a specific IP.
 config.vm.network "private_network", ip: "192.168.33.10"

メモリの割り当て設定

4GB程度に設定(お好みで)
あまり低いとインストールに時間がかかるかも

   config.vm.provider "virtualbox" do |vb|
     # Display the VirtualBox GUI when booting the machine
  #   vb.gui = true
     # Customize the amount of memory on the VM:
    vb.memory = "4096"
   end

Rails インストールシェルの設定

ここにRailsをインストールするためのコマンドを書き込む
最後の方の
“config.vm.provision “shell”, inline: <<-SHELL”から
“SHELL”の間に以下を書き込む

# 必要なパッケージをインストール
     sudo apt-get update
     sudo apt-get install -y build-essential zlib1g-dev libssl-dev
     sudo apt-get install -y libreadline-dev libyaml-dev libxml2-dev libxslt-dev
     sudo apt-get install -y ruby-dev nodejs
     sudo apt-get install -y rbenv
     sudo apt-get install libsqlite3-dev
     # Railsインストール 
     sudo gem install rails
     sudo gem install sqlite3 # SQLITE用にインストール
     sudo gem install therubyracer

     # Railsアプリケーション作成
     cd /vagrant  && rails new myapp
     sudo chmwon -R ubuntu:ubuntu /vagrant/myapp 


5.Vagrant起動

vagrant up

初回起動時に上で書いたシェルを実行してくれる。

できたか確認

仮想環境にログイン

vagrant ssh

Rails アプリをWebRickで動かす

cd /vagrant/myapp
rails s -b 0.0.0.0

エラーなく起動したら http://192.168.33.10:3000
に接続してみる。

6.振り返り

ここまでスムーズに行けば10分程度でRailsが動くサーバを作成できる。
環境構築は意外と時間がかかるので、
こういう形でどんどん自動化していきたい。

ただ、いきなり環境構築のためのスクリプトを書くのは
不可能なので

  • ①手動で試行錯誤しながら環境構築
  • ②①の手順をVagrantのprovisonシェルに書く

という流れで自動化していくのが良さそう。