EnsekiTT Blog

EnsekiTTが書くブログです。

Vagrant上のCentOS6.9にRuby on Railsの環境を構築する話

つまりなにしたの?

Vagrant上のCentOS6.9にRuby on Railsの環境を構築する
f:id:ensekitt:20180430025229j:plain

前回の環境構築

ensekitt.hatenablog.com
VagrantにCentOS6.9をインストールした。

CentOS6.9内部の環境を整える

iptablesファイアウォールの無効化

開発環境として、リモートサイトからのHTTP要求を受けられるようにするためにiptablesファイアウォールを無効にする。

$ sudo /etc/rc.d/init.d/iptables stop
$ sudo /etc/rc.d/init.d/ip6tables stop
$ sudo chkconfig iptables off
$ sudo chkconfig ip6tables off
selinuxを無効にする

開発環境として、selinuxを無効にする。

$ vi /etc/selinux/config
# SELINUX=permissive を以下に変更する
SELINUX=disabled
地域と時間を設定する
$ sudo rm /etc/localtime
$ sudo vi /etc/sysconfig/i18n
en_US.UTF-8のところをja_JP.UTF-8にする。
$ sudo yum install ntpdate
$ sudo ntpdate ntp.nict.jp
remiのリポジトリを適用する

リポジトリ
Index of /Linux/distributions/fedora/epel/6
から選ぶ。

$ wget http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ sudo rpm -ivh epel-release-6-8.noarch.rpm
MySQLをインストールする
$ sudo rpm -Uvh --force http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
$ sudo yum install mysql mysql-devel mysql-server mysql-utilities
# MySQLの設定
$ sudo cp /etc/my.cnf /etc/my.cnf.backup
$ vi /etc/my.cnf
$ diff /etc/my.cnf /etc/my.cnf.backup
0a1,3
> # For advice on how to change settings please see
> # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
>
1a5,19
> #
> # Remove leading # and set to the amount of RAM for the most important data
> # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
> # innodb_buffer_pool_size = 128M
> #
> # Remove leading # to turn on a very important data integrity option: logging
> # changes to the binary log between backups.
> # log_bin
> #
> # Remove leading # to set options mainly useful for reporting servers.
> # The server defaults are faster for transactions and fast SELECTs.
> # Adjust sizes as needed, experiment to find the optimal values.
> # join_buffer_size = 128M
> # sort_buffer_size = 2M
> # read_rnd_buffer_size = 2M
5,8d22
< character_set_server=utf8
< default-storage-engine=InnoDB
< innodb_file_per_table
<
12,26c26,27
< user=mysql
<
< ;plugin-load=rpl_semi_sync_master=semisync_master.so
< ;plugin-load=rpl_semi_sync_slave=semisync_slave.so
<
< ;rpl_semi_sync_master_enabled=1
< ;rpl_semi_sync_master_timeout=10
< ;rpl_semi_sync_slave_enabled=1
< ;performance_schema
<
< [mysql]
< default-character-set=utf8
<
< [mysqldump]
< default-character-set=utf8
---
> # Recommended in standard MySQL setup
> sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
31,32d31
<
< !includedir /etc/my.cnf.d

$ sudo mysqld enable
yumで開発環境に必要なパッケージをインストールする
$ sudo yum install man --enablerepo=epel
$ sudo yum install gcc openssl openssl-devel rpm-build gcc-c++ bzip2 bzip2-devel libtool zlib zlib-devel --enablerepo=epel
$ sudo yum install httpd-devel curl-devel ncurses-devel gdbm-devel readline readline-devel sqlite sqlite-devel --enablerepo=epel
$ sudo yum install libyaml-devel libfft-devel bison git --enablerepo=epel
rbenvとRubyのインストール
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ cd ~/.rbenv && src/configure && make -C src
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ ~/.rbenv/bin/rbenv init
$ vi ~/.bash_profile
eval "$(rbenv init -)"
を追記する
$ git clone https://github.com/sstephenson/ruby-build.git /home/vagrant/.rbenv/plugins/ruby-build
$ rbenv install 2.4.4 && rbenv rehash && rbenv global 2.4.4
nodejsのインストール
$ curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
$ sudo yum install nodejs npm
Railsのインストール
$ gem install rails
Railsのアプリを作る
$ rails new sampleapp
$ cd sampleapp
$ bundle exec spring binstub --all
$ rails server

f:id:ensekitt:20180430024933p:plain

できました!

後日、Ansibleでもできるようにしました。
ensekitt.hatenablog.com

クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。