Chefでvagrantにサーバー構築③(nginx設定編)
流れ
前回とほぼ同じです。 テンプレートファイル作ってクックブックにそのファイルを指定するだけです。
まずはsite-cookbooks/develop_cookbook/recipes/nginx.rbを作成します。
デフォルトのnginx.confは削除します(nginx.conf.defaultあるので)。
消さないとエラー吐きます。
#site-cookbooks/develop_cookbook/recipes/nginx.rb #nginx config bash 'rm nginx conf files' do code 'sudo rm /etc/nginx/nginx.conf' end template 'nginx.conf' do path '/etc/nginx/nginx.conf' source 'nginx.conf.erb' owner 'root' group 'root' mode '0644' notifies :reload, 'service[nginx]' end
次にnginx.confのテンプレートファイルをsite-cookbooks/develop_cookbook/templates/default/nginx.conf.erbに作成します。
以下のようにしました。
#site-cookbooks/develop_cookbook/templates/default/nginx.conf.erb user nginx; worker_processes 1; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; server { listen <%=node['nginx']['port'] %>; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; } } }
site-cookbooks/develop_cookbook/attributes/default.rbに以下を追加してください。
node.default['nginx']['port'] = '80'
最後に、Vagrantfileに以下を追加します
#Vagrantfile chef.add_recipe "develop_cookbook::nginx"
これでvagrant reload —provisionしてvagrant sshしてcurl localhostしたらnginxの標準トップページのhtmlが返ってきます。
次はserverspecです。