流浪者/厨师 - nginx 食谱扩展

Mar*_*ace 5 nginx provisioning chef chef-solo vagrant

我对使用 Chef 还很陌生,尤其是使用 vagrant,所以对于更有经验的用户来说,这很可能是一个愚蠢的问题。

我正在使用这本食谱:https : //github.com/opscode-cookbooks/application_nginx

我只想添加我自己的站点配置(vhost)。

它必须是以下之一:

  1. 将我自己的食谱和模板直接添加到食谱中
  2. 创建我自己的食谱,以某种方式扩展 nginx 食谱以仅添加我需要的特定行为。

选项 1 对我来说似乎不正确,我不知道如何在不必完全分开食谱的情况下完成选项 2。

任何人都可以就如何实现这一目标提出建议吗?

sci*_*rus 7

如果你只是想通过 nginx 配置一个虚拟主机,你很可能想使用nginx说明书。所述application_nginx食谱并不意味着直接使用; 相反,它是应用程序手册的依赖项。如果您刚刚开始使用厨师,我现在会避免使用应用程序说明书,因为它的使用有些复杂。

正确的做法是创建您自己的说明书来配置您的站点,并在其中使用 nginx 说明书。将第三方说明书视为在您自己的说明书中使用的通用库,而不是您分叉和修改以使其特定于您的应用程序的东西。

例如,您的食谱中的默认食谱可能是:

# run the nginx::default recipe to install nginx
include_recipe "nginx"

# deploy your sites configuration from the 'files/' directory in your cookbook
cookbook_file "#{node['nginx']['dir']}/sites-available/example.com" do
  owner "root"
  group "root"
  mode  "0644"
end

# enable your sites configuration using a definition from the nginx cookbook
nginx_site "example.com" do
  enable true
end
Run Code Online (Sandbox Code Playgroud)