MacにRuby on Rails5の開発環境を作る（Vagrant+RubyMine）

RubyMine対応するように書き直しました。
開発環境にUnicornとかいらへんし。Nginxもいらへんし。
かと思ったらRails5のActionCableとやらを使うのにredis必要だったり。

# はい。
Rails5のAPIモードってやつでAPIを作るよ！
そしてC#,Swift,Objective-c,Kotlin,Java,PHP,Rubyを使いこなすぼくはいちいちAPIとか構文なんて覚えてられないので、IDE必須。
環境汚したくないし、MacもいっぱいあるのでVagrantでの環境構築を選択。
VagrantでRubyとなるとIDEはRubyMine一択？Visual Studio Code使いたいけど、Remote SDK対応してるか未調査。
ついでにWeb/APIなんぞにデバッガーなんて不要と思っているので、そこまではやりません。
あとDBはMySQLで。

# Vagrantについて
[こちら](https://qiita.com/akippa_app/items/ac63cc5ea48ad702c359)のシリーズを参照してくだされ。

# 事前準備
XcodeをApp Storeから、Homebrewをターミナルからインストールしておきましょう。[参考](https://qiita.com/akippa_app/items/96cce728dac9f187ba2b)

終わったらMac側に色々インストールします。

```shell-session
$ brew tap caskroom/cask
$ brew cask install virtualbox virtualbox-extension-pack vagrant
$ vagrant plugin install vagrant-omnibus
$ vagrant plugin install vagrant-vbguest
$ vagrant plugin install vagrant-bindfs
```

# Vagrant使ってみる

```shell-session
$ vagrant init
```

ってするとVagrantfileができます。
Vagrantfileの書き方は[こちら](https://qiita.com/akippa_app/items/d6aef518bff20dc39530)を参照。
box_urlはAmazon Linuxのものを。

config.vm.provision "shell", privileged: false, inline: <<-SHELLの中に[こちら](https://qiita.com/yutaka_izumaru/items/44ae64df91f9fed593d2)を参考にprovisionを書いていきます。

で、かけたのがこちら

```rb
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "third"
  config.vm.box_url = "https://atlas.hashicorp.com/mvbcoding/boxes/awslinux/versions/2017.03.0.20170401/providers/virtualbox.box"
  config.vm.box_check_update = false

  config.vm.network :forwarded_port, guest: 3000, host: 3000, auto_correct: true
  config.vm.network "private_network", ip: "192.168.33.11"

  config.vm.synced_folder "../api", "/var/www/api"

  config.vm.provider "virtualbox" do |vb|
    vb.gui = false
    vb.name = "third"
    vb.memory = "2048"
    vb.cpus = 4
  end

  config.vm.provision "shell", privileged: false, inline: <<-SHELL
    # とりあえず
    sudo yum -y update

    # 必須コンポーネント
    sudo rpm -Uvh ftp://ftp.scientificlinux.org/linux/scientific/6.4/x86_64/updates/fastbugs/scl-utils-20120927-8.el6.x86_64.rpm
    sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
    sudo yum -y install nodejs --enablerepo=epel
    sudo yum -y install mysql git redis gcc openssl-devel readline-devel mysql-devel

    # Rubyインストール
    git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
    echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
    echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
    source ~/.bash_profile
    git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
    rbenv install 2.4.2
    rbenv global 2.4.2
    rbenv rehash
    gem update --system
    gem install --no-ri --no-rdoc rails
    gem install bundler
    gem install mysql2
    gem install rails

    # ドキュメントルート設定
    sudo chown -R vagrant:vagrant /var/www
    sudo chmod 2777 /var/www -R

    # 日本時間に
    sudo mv /etc/localtime /etc/_localtime
    sudo cp /usr/share/zoneinfo/Japan /etc/localtime
  SHELL
end
```

書けたら

```shell-session
$ vagrant up
```

しばらーーーーくすると終わります。

```shell-session
$ vagrant ssh
```

でVagrantに接続しましょう。

# 脱線 - vagrant sshじゃなくて、普通のSSHではいる。

```shell-session
$ vagrant ssh-config
```

ってしましょう。
これを~/.ssh/configにかけばよいですね。

# Rails APIアプリケーションの作成
Vagrant上で作業しますよ。

```shell-session
$ cd /var/www
$ rails new api --api -d mysql
$ bundler install --path vendor/bundler
```

# RubyMineインストール
こちらから
https://www.jetbrains.com/ruby/

とりあえず30日のトライアルがあるよ。
手順にしたがって進むだけだけど、Version Control Systemsはいらないから外した。
PluginはVagrantを。

# RubyMine設定
とりあえずRubyMineでsynced_folderを開きましょう。

で、ファイルメニュー：RubyMine→環境設定を開く
左のところからBuild,Execustion,Deployment→Deploymentを選択
+で追加。Nameは任意、TypeはSFTP。
Connectionタブにvagrant ssh-configで表示される情報を適宜入力。ちなみに入力したのは

```
SFTP host 127.0.0.1
Port 2222
Root path /
User name vagrant
Auth type Key pair(OpenSSH or PuTTY)
Private key file [Vagrantfileがあるフォルダ]/.vagrant/machines/default/virtualbox/private_key
```

Mappingsタブは

```
Deployment path on server "hogehoge": /var/www/api
```

以外はそのまま。

で、次はLanguages & Frameworks→Ruby SDK and Gemsを選択。+→New remoteを選択。
Vagrantにチェックをいれて、Vagrant Instance FolderにVagrantfileがあるフォルダを指定。
Ruby interpreter pathに、、参考通りにインストールした場合は「/home/vagrant/.rbenv/versions/2.4.2/bin/ruby」を。
で、チェックをいれて、Apply→OK。

で、Runしましょう。
http://127.0.0.1:3000 にアクセスしたらRailsの画面が出ると思われ。

いじょー

by [株式会社Arrvis](http://www.arrvis.com/)