DesignAssembler

備忘録に近い

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です。

参考

qiita.com