6
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

VirtualBox+Vagrant+UbuntuでRuby on Rails の環境構築から環境を渡すまで

Last updated at Posted at 2019-05-08

#はじめに
MacOSでRails環境のVMを生成しWindowsに環境を渡すまでの軌跡です
Rails を用いた共同開発したい
複数人と同じ環境で何かしたいという人には役に立つと思います
今回行うことは下記の流れでします

  • Mac でVirtualBox, Vagrantのインストール
  • VagrantでUbuntuの環境構築
  • git, Rails のインストール
  • Rails のサーバー起動からアクセスまで
  • Boxの生成
  • Windowsに環境を渡す

##環境

  • ホストOS: MacOS Mojave
  • ゲストOS: Ubuntu18.04
  • Ruby: 2.4.1
  • Ruby on Rails: 5.2.1
  • VMを渡すOS: Windows10

##下準備 
###VirtualBox, Vagrantのインストール
自分にあったインストーラーをダウンロードしてインストールしてください

VirtualBox: https://www.virtualbox.org/
Vagrant: http://www.vagrantup.com/
##本題
###VagrantでUbuntuの環境構築
VMを置くためのディレクトリ作成

$ mkdir MyVagrant #VMを置くためのディレクトリ
$ cd MyVagrant
$ mkdir Rails #VM
$ cd Rails
$ vagrant init bento/ubuntu-18.04 #Vagrantfile生成

このコマンドを叩くとVagrantfileができてるので
下記のように書き直す

Vagrantfile
Vagrant.configure("2") do |config|
  config.vm.box = "bento/ubuntu-18.04"
  config.vm.network "private_network", ip: "192.168.33.11"
end
$ vagrant up # VM起動
$ vagrant ssh # ssh接続

これでUbuntu18.04の環境構築が完了

###Ruby on Railsの環境構築
(Ubuntu側での操作のためssh後行ってください)
gitとか色々インストール

$ sudo apt-get update
$ sudo apt-get -y install git curl g++ make
$ sudo apt-get -y install zlib1g-dev libssl-dev libreadline-dev
$ sudo apt-get -y install libyaml-dev libxml2-dev libxslt-dev
$ sudo apt-get -y install sqlite3 libsqlite3-dev nodejs

rbenvのインストール

$ cd
$ git clone https://github.com/sstephenson/rbenv.git .rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ exec $SHELL

(git clone でエラーが出た場合, user.name, user.email, 鍵の登録などをすることで解決すると思います.)
ruby-buildのインストール

$ mkdir -p ~/.rbenv/plugins
$ cd ~/.rbenv/plugins
$ git clone https://github.com/sstephenson/ruby-build.git

rubyのインストール (結構時間かかります)

$ rbenv install 2.4.1
$ rbenv global 2.4.1

$ rbenv version #rbenvバージョンの確認
$ ruby -v #rubyバージョン確認

.gemrc の生成

$ cd
$ emacs .gemrc #適当なエディタで生成
.gemrc
install: --no-ri --no-rdoc
update: --no-ri --no-rdoc

Ruby on Railsのインストール


$ gem install rails -v '5.2.1'
$ rbenv rehash

アプリ作成からサーバー起動まで


$ rails new sample  #アプリ作成
$ cd sample
$ bundle exec rails server -b 0.0.0.0 #サーバー起動

(rails s だけだとホストOS側からアクセスできない)
ブラウザで 192.168.33.11:3000 にアクセスできたら成功
(192.168.33.11 はVagrantfileで書いた ip)
ターミナルに戻り ctrl+C でサーバを落とす 

$ exit # sshから抜ける
$ vagrant halt #VMのシャットダウン

ここまで全てMacOSでの出来事

box生成 から windowsに環境を渡すまで

Mac でpackage.boxの生成


$ vagrant package

どこかに package.box ができていたら成功(結構時間がかかる)

ここから結構大変
ここからWindowsでの操作
####下準備

  • USB でもなんでもいいのでWindowsのPCにpackage.box を渡す
  • WindowsPC でもVirtualBox, Vagrant の環境を構築
  • 適当なterminalの準備 (gitbash or WSL がおすすめ)

terminalを起動

$ mkdir MyVagrant
$ cd MyVagrant # MyVagrantのなかにpackage.boxを移動
$ vagrant box add Ubuntu18 package.box
$ vagrant box list #これでUbuntu18が追加されていればOk
$ vagrant init Ubuntu18 #結構時間かかる
$ cd Ubuntu18

Vagrantfile の編集

Vagrantfile
Vagrant.configure("2") do |config|
  config.vm.box = "bento/ubuntu-18.04"
  config.vm.network "private_network", ip: "192.168.33.12"
end

$ vagrant reload #Vagrantfile いじった後これをしないと行けないかも
$ vagrant up
$ vagrant ssh
$ cd sample
$ bundle exec rails server -b 0.0.0.0

ブラウザで 192.168.33.12:3000 にアクセスできたら成功
(192.168.33.12 はVagrantfileで書いた ip)
ターミナルに戻り ctrl+c でサーバを落とす 


$ vagrant halt #VMのシャットダウン

これでMac及びWindowsに同じUbuntu環境ができたと思います
お疲れ様です

###おまけ よく使うコマンド


$ vagrant up #VMの起動
$ vagrant ssh #ssh接続
$ vagrant halt #シャットダウン
$ vagrant package #package.box の生成
$ vagrant box add Ubuntu18(box名) package.box(package名) #boxの追加
$ vagrant box list #boxlistの確認

###参照リンク
Railsの環境構築(Ubuntu)
Vagrantの仮想マシンにscpでファイル転送する
Vagrantの中でRailsを起動するまでの手順。
Vagrant + VirtualBox + Ubuntu でRails環境構築
Vagrantでboxファイル作成
Vagrant + VirtualBoxでWindows上に開発環境をサクッと構築する

6
11
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?