2013-10-21 25 views
2

我使用http://community.opscode.com/cookbooks/nginx對流浪使用自定義大廚食譜

安裝Nginx的

我想對Nginx的與我的配置文件/home/vagrant/nginx/nginx.conf啓動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", 
     } 
    } 
} 

這是怎麼回事?上

+0

我也很酷,從包中安裝它。最後,我真的只是想讓它使用我的nginx.conf運行... – user1161657

回答

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下Nginx的回購。這需要apt食譜,它提供了apt_repository LWRP,
  2. 刪除現有的/etc/nginx/nginx.conf並使用cookbook_file複製預定義的一個。我已按照我的要求配置nginx.conf並將其保存在食譜的files目錄下。

底線,我不使用nginx食譜安裝nginx;相反,我將它安裝爲一個包,然後根據我的需要進行配置。

+0

刪除操作是多餘的,因爲cookbook_file塊將覆蓋無論如何存在的任何東西。通過省略刪除操作,您至少可以在輸出中看到差異來警告您剛剛更改的內容。 – DGM