私は Berkshelf、Chef、Vagrant を使用しており、nginx で動作するカスタム サイトを構成しようとしています。opscode nginx レシピを使用してから、カスタム サイト用に独自のレシピを作成しています。vagrant up を実行すると、デフォルトの nginx サイトを無効にしないというエラーが表示されます。いくつかの異なる提案を見つけましたが、何も機能していないようです。
エラー:
STDOUT:
STDERR: nginx: [emerg] a duplicate default server for 0.0.0.0:80 in /etc/nginx/sites- enabled/kyleboon.me:2
nginx: configuration file /etc/nginx/nginx.conf test failed
私のバークスファイル:
site :opscode
metadata
cookbook 'nginx'
私が定義した 'roles/web.json' ロール:
{
"name": "web",
"chef_type": "role",
"json_class": "Chef::Role",
"description": "The base role for systems that serve HTTP traffic",
"default_attributes": {
"nginx": {
"default_site_enabled": false
},
"app": {
"name": "kyleboon.me",
"web_dir": "/var/data/www/kyleboon.me"
},
"user":{
"name": "vagrant"
}
},
"run_list": [
"recipe[nginx]",
"recipe[kyleboon.me]"
]
}
追加するnginxサイトのレシピ/デフォルト/デフォルト.rbは次のとおりです。
nginx_site 'default' do
action :disable
end
%w(public logs).each do |dir|
directory "#{node.app.web_dir}/#{dir}" do
owner node.user.name
mode "0755"
recursive true
end
end
template "#{node.nginx.dir}/sites-available/kyleboon.me" do
source "site.erb"
mode 0777
owner node.nginx.user
group node.nginx.user
end
nginx_site "kyleboon.me"
cookbook_file "#{node.app.web_dir}/public/index.html" do
source "index.html"
mode 0755
owner node.user.name
end
(PSファイルのアクセス許可を変更する必要があることはわかっています。多くのことをいじっているだけです。他のすべてが機能するようになったら、それらを更新します)
そしてここに attributes/default.rb があります:
override['nginx']['enable_default_site'] = false
web.json のデフォルト サイト、属性、およびレシピ自体を無効にしようとしたことがわかりますが、どれも固執しません。
ノードまたはソロ ノードが定義されていませんが、それが問題かどうかわかりません。これまでの vagrant に関する私の主な問題は、物事を行う方法の無限の可能性です。同じ方法で行われる例は 2 つとなく、何が「最善」または「正しい」方法と見なされるかはわかりません。