在Chef Cookbook中使用自定义nginx.conf

use*_*657 2 nginx cookbook chef-infra vagrant

我正在使用http://community.opscode.com/cookbooks/nginx在Vagrant上安装Nginx

我想让Nginx从我的配置文件开始/home/vagrant/nginx/nginx.conf,但它似乎坚持使用etc/nginx/nginx.conf

我的Vagrantfile的相关部分是:

chef.add_recipe "ohai"
chef.add_recipe "runit"
chef.add_recipe "nginx"

chef.json = {
    :nginx => {
        :install_method => "source",
        :source => {
            :version => "1.4.1",
            :conf_path => "#{VAGRANT_HOME_DIRECTORY}/nginx/nginx.conf",
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这里发生了什么??

sla*_*fer 5

我按照以下要求安装和配置nginx.这是我的nginx安装和配置方法:

include_recipe "apt"

apt_repository 'nginx' do
  uri          'http://nginx.org/packages/ubuntu/'
  distribution node['lsb']['codename']
  components   ['nginx']
  key          'http://nginx.org/keys/nginx_signing.key'
  deb_src      true
end

apt_package 'nginx' do
  action :install
end

file "/etc/nginx/nginx.conf" do
   action :delete
end

cookbook_file "/etc/nginx/nginx.conf" do
   source "nginx.conf"
   action :create
end

service "nginx" do
   action :start
end
Run Code Online (Sandbox Code Playgroud)

说明:

  1. 在下配置nginx repo sources.list.这需要提供LWRP 的apt cookbook apt_repository,
  2. 删除现有的/etc/nginx/nginx.conf并使用复制预定义的cookbook_file.我已nginx.conf根据我的要求进行了配置并将其保存files在cookbook的目录下.

最重要的是,我没有使用nginx cookbook安装nginx; 相反,我将它作为一个包安装,然后根据我的需要进行配置.