2

我正在使用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",
        }
    }
}

这里发生了什么??

4

1 回答 1

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

解释:

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

底线,我不使用 nginx 食谱安装 nginx;相反,我将它安装为一个包,然后根据我的需要进行配置。

于 2013-10-21T08:29:58.410 回答