我应该在哪里配置第三方厨师食谱安装的软件?

我应该在哪里配置第三方厨师食谱安装的软件?

我正在使用 Chef 配置一个 Vagrant 虚拟机,它很棒,但我不确定应该将代码放在哪里来配置由第三方 Chef 食谱安装的软件。

例如,我正在使用以下方式安装 NGINX这个食谱但我需要配置默认虚拟主机来提供内容,/vagrant/public而不是/var/www/nginx-default

我应该更改第三方配方的模板,还是创建另一个重新配置它的配方?

答案1

有几件事:

自从撰写这个问题以来,Opscode 已经将其存储库结构拆分为每个食谱一个存储库,以使项目更加清晰。

最新发布的稳定 nginx cookbook 可以在这里找到:http://community.opscode.com/cookbooks/nginx

至于从备用容器提供网页:

做这样的事情的惯例是编写一本更简单的食谱,它利用nginx食谱但为您提供一种“做您想做的事情”的方法。

由于默认的 nginx 安装会删除一个配置文件并设置源目录,因此我在“包装器”手册中执行此操作的方法是:

  1. 创建我的食谱
  2. 声明depends 'nginx'metadata.rb
  3. 在我的食谱中attributes/default.rb,将以下属性设置为 false:

    default['nginx']['default_site_enabled'] = false
    
  4. 在我的 中recipes/default.rb有:

    include_recipe 'nginx'
    
    cookbook_file '/etc/nginx/sites-available/mycustomwebapp'
    
    nginx_site 'mycustomwebapp' do
      action :enable
    end
    
  5. 创建一个如下所示的 nginx conf 文件files/default/mycustomwebapp

    server {
        root /vagrant/public;
        index index.html index.htm;
            blah blah...
    }
    

那你就可以出发了!

相关内容