(失敗)ChefでRails環境の構築してみる

ChefでRuby2.0をソースからインストールしてみる
の続き

ChefでRails環境の構築してみようとしたが、
駄目だった。

Cookbookの作成

クックブックを作成し、

$ cd chef-repoのディレクトリ
$ knife cookbook create passenger -o site-cookbooks

レシピを作成する。

$ vi site-cookbooks/passenger/recipes/default.rb
# この設定をしておくといいらしい
execute "resolv.option" do
  not_if "grep 'options single-request-reopen' /etc/resolv.conf"
  command "echo 'options single-request-reopen' >> /etc/resolv.conf"
  action :run
end

# yum -y install httpd
package "httpd" do
    action :install
end

# service httpd start
# chkconfig httpd on
service "httpd" do
  action [:start, :enable]
end

# yum -y install curl-devel httpd-devel
package "curl-devel" do
    action :install
end
package "httpd-devel" do
    action :install
end

# gem install passenger
gem_package "passenger" do
  gem_binary("/usr/local/bin/gem")
  action :install
end

# passenger-install-apache2-moduleの設定
bash 'install_passenger' do
  user 'root'

  code <<-EOC
    passenger-install-apache2-module --auto
    passenger-install-apache2-module --snippet > /etc/httpd/conf.d/passenger.conf
  EOC

  creates "/etc/httpd/conf.d/passenger.conf"
end

# yum -y install sqlite-devel
package "sqlite-devel" do
  action :install
end

# gem install rails
# gem install sqlite3
gem_package "rails" do
  gem_binary("/usr/local/bin/gem")
  action :install
end
gem_package "sqlite3" do
  gem_binary("/usr/local/bin/gem")
  action :install
end

仮想マシンへの反映

nodeのjsonを下記のよう修正し、

$ vi node/centos.json
{
  "run_list": [
    "recipe[ruby2]",
    "recipe[passenger]"
  ]
}

仮想マシンに反映する。

$ knife solo cook centos

Railsのアプリの作成

仮想マシンに入って、

$ ssh centos

Railsのアプリを作成する。

centos$ rails new sample
centos$ cd sample
centos$ vi Gemfile
gem 'therubyracer',  platforms: :ruby	←コメントを解除
centos$ bundle install

Httpの設定を適当に修正して、

centos$ sudo vi /etc/httpd/conf/httpd.conf
・・・
User vagrant
Group vagrant
・・・
DocumentRoot "/home/vagrant/sample/public"
・・・
RailsEnv development	←追加

再起動する。

centos$ sudo service httpd restart

結果

しかし、
http://192.168.33.10/
にアクセスしてもRailsの画面が表示されず、Apacheの画面が表示される。

passenger-install-apache2-module --auto
がchefのrubyで実行されてるみたいで、

再度実施したら

centos$ su -
centos# passenger-install-apache2-module --auto

Railsの画面が表示されるようになった。
よく分からない。