追記
(2015/05/26)激古なNginxがインストールされてしまうため、使用するnginxのレシピを「nginx::source」に変更しました。それに伴い、chef.json内にnginxの設定を追加しました。
Vagrant + ChefでRails開発環境構築① - 継続的ブログ
続きです。
Railsの環境を構築していきます。
クックブックは自作せず、コミュニティのクックブックを使用しています。
細かい設定はしていません。
コミュニティクックブックに頼るのはあまりいい方法とは言えませんが、手軽に試せる開発環境を目指しました。
Berksfileの作成
カレントディレクトリにBerksfileというファイルを作成し、以下のように記述します。
source "https://api.berkshelf.com" cookbook "vim" cookbook "ruby_build" cookbook "rbenv", github: "fnichol/chef-rbenv" cookbook "git" cookbook "mysql", "~> 5.3.6" cookbook "nginx"
クックブックをダウンロード
$ berks vendor cookbooks
このコマンドで、cookbooksディレクトリにクックブックをダウンロードしてきます。
vagrant-chef-zeroプラグインはCookbooksディレクトリに置かれたクックブックをChef Zero Serverにアップロードします。
Vagrantfileの修正
Vagrantfileに、実行するクックブックと設定を追記します。
... # private ipでアクセスできるように設定 config.vm.network "private_network", ip: "192.168.50.12" config.vm.provision :chef_client do |chef| chef.custom_config_path = "chef_custom_config" chef.run_list = [ "vim", "ruby_build", "rbenv::user", "git", "mysql::server", "mysql::client", "nginx::source" ] chef.json = { "rbenv" => { "user_installs" => [ { "user" => "vagrant", "rubies" => ["2.2.2"], "global" => "2.2.2", } ] }, "mysql" => { "version" => "5.6", "port" => "3306", "server_root_password" => "vagrant", "remove_anonymous_users" => true }, "nginx" => { "version" => "1.9.0", "source" => { "checksum" => "ここにチェックサムを入力" } } } end ...
ちなみに、nginxは/opt以下にインストールされます。
checksumの生成方法
まず、wget等でnginx.tar.gzをダウンロードします。
$ curl -o nginx-1.9.0.tar.gz http://nginx.org/download/nginx-1.9.0.tar.gz
次にダウンロードしたファイルに対して、下記コマンドでchecksumの生成をします。
$ shasum -a 256 nginx-1.9.0.tar.gz
出てきた文字列を先程の場所に入力すればOKです。
Provisionersの実行
$ vagrant provision