ねこ的アルゴリズム

技術的な話メインの雑記ブログ

【Virtualbox + Vagrant】Railsの開発環境構築

Rails アプリ開発を仮想マシンでできるよう、Virtualbox と Vagrant を使って構築を行なっていきます。

f:id:neko_aquaalta:20170216232552p:plain

メニューが表示されます


SPONSORED LINK

アプリケーションのダウンロードとインストール

Virtualbox

Vagrant

Vagrant 環境の構築

Vagrantfile の作成

ホームディレクトリに vms/test_app フォルダを作成し、その中に Vagrantfile を作成します。

$ mkdir -p $HOME/vms/test_app
$ cd $HOME/vms/test_app
$ vagrant init

Vagrantfile の編集

CentOS 6.7 で仮想環境を作っていきます。

synced_folder を用いてホストマシンのファイルを参照することができます。

# -*- mode: ruby -*-
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.define 'test_app' do |test_app|
    # test_app.ssh.private_key_path = 'vagrant.rsa'
    test_app.ssh.forward_agent = true
    test_app.vm.box = 'webopninjas/centos-6.7'
    test_app.vm.box_url = 'https://atlas.hashicorp.com/webopninjas/boxes/centos-6.7'
    test_app.vm.network :private_network, ip: '192.168.33.10'
    test_app.vm.network :forwarded_port, guest: 3000, host: 3000
    test_app.vm.synced_folder '../../', '/vagrant', type: 'nfs'
    test_app.vm.provider :virtualbox do |vb|
      vb.customize ['modifyvm', :id, '--memory', '2048']
      vb.customize ['modifyvm', :id, '--cpus', '2']
    end
  end
end

仮想マシンの起動

$ vagrant up

vagrant up した時点で、CentOS6.7 の box file のダウンロードも同時に行われます。

.ssh/configの設定

  • sshで仮想マシンにログインするための設定を行います。
$ vagrant ssh-config --host 192.168.33.10 >> ~/.ssh/config

.ssh/config の編集

vagrant 環境に簡単に ssh 接続するための設定を行います。

$ vim ~/.ssh/config
Host test_app
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /Users/xxxx/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

このように設定することで、 ssh HOST を打つことで設定を活かしてのログインが可能になります。

ssh でログイン

$ ssh test_app

これで、 ssh で仮想環境に入れるようになりました。

次に CentOS に必要なツールのインストールをしていきます。

Development Tool (Gitなど)のインストール

# yum -y install automake libtool openssl-devel wget
# yum -y groupinstall "Development Tools"

rbenv(Ruby)のインストール

rbenv は Ruby のバージョン管理ツールです。

$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ git clone https://github.com/sstephenson/ruby-build.git 
$ cd ruby-build
# ./install.sh

# yum -y install libffi-devel

$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'export RBENV_ROOT="$HOME/.rbenv"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

実際に必要なバージョンの ruby をインストールします。

// installしたいRubyのversionを選ぶ
$ rbenv install --list
// 今回は2.2.5 をinstall
$ rbenv install 2.2.5
$ rbenv global 2.2.5
$ rbenv rehash

参考: sstephenson/ruby-buildCentOS 7.0 + Ruby + Unicon 環境構築

mysql のインストール

// mysql communityからインストール
# yum -y install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
 
// MySQL インストール
# yum -y install mysql-community-server
 
// OS 起動時に自動起動するよう設定
# chkconfig mysqld on

// mysqlデーモンの起動
# service mysqld start

参考: CentOS 6 / RHEL 6 に MySQL 5.6 を yum インストールする手順

Rails のセットアップ

bundler の install

$ gem update --system
$ gem update --force
$ gem install bundler
$ rbenv rehash

bundle install

mount している Rails アプリのディレクトリで行います。 どこをマウントポイントにするかは、vagrant の設定ファイルに書いた通りです。

$ bundle install 

あとは DB の作成をしたのち、rails サーバを起動します。

$ rake db:create
$ rake db:migrate
$ rails s -b 0.0.0.0

これで http://localhost:3000 にアクセスし、rails サーバにアクセスできれば完了です。 おつかれさまでした!


SPONSORED LINK