(失敗)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の画面が表示されるようになった。
よく分からない。