私はBerkshelf、Chef、Vagrantを使用しており、nginx上で動作するカスタムサイトを設定しようとしています。私はopscode nginxレシピを使用していて、カスタムサイトのレシピを自分で作成しています。私が迷惑メールを実行すると、デフォルトのnginxサイトを無効にしないというエラーが表示されます。私はいくつかの異なる提案を見つけましたが、何も動作していないようです。ChefとVagrantを使用する際のデフォルトの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
マイBerksfile:
site :opscode
metadata
cookbook 'nginx'
私が定義されての役割/ 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サイトのdefault.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
(P.S.私は
)私が働いて他のすべてを得れば、私はそれらを更新します、私は物事の多くをいじってきた、ファイルのパーミッションを変更する必要が知っていて、ここに属性/ default.rbです:
override['nginx']['enable_default_site'] = false
web.jsonのデフォルトサイト、属性、レシピ自体を無効にしようとしていますが、どれもそれらに固執していないことがわかります。
ノードまたはソロノードが定義されていないため、問題があるかどうかはわかりません。これまでの私の迷惑メールの主な問題は、何かを行う方法の無限の可能性でした。 2つの例は同じ方法で実行されているわけではありませんし、私は「最良」または「正しい」方法とは考えられていません。
'node ['nginx'] ['enable_default_site']'を使ってデフォルトのサイトを無効にすると、通常動作します。サイトでシンボリックリンクが残っている可能性があります。シェフによって管理されていないリソース宣言を削除しただけなので削除しません)? – cmur2
私は迷惑をかけてしまったことを確認しました。確かに私は準備するたびに有効になっているサイトでリンクを作成しているようですが、私は二重チェックをします。 –
私はCliff Ersonの答えが正しいと思います。あなたはそれを受け入れたいと思うかもしれませんか? – kioopi