我正在使用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",
}
}
}
这是怎么回事?
最佳答案
我按照我的要求安装和配置 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
说明:
- 在
sources.list
下配置 nginx 存储库。这需要apt提供apt_repository
LWRP的cookbook, - 删除现有的
/etc/nginx/nginx.conf
并使用cookbook_file
复制预定义的文件。我已经根据我的要求配置了nginx.conf
并将其保存在说明书的files
目录下。
底线,我不使用 nginx 说明书安装 nginx;相反,我将其作为包安装,然后根据我的需要进行配置。
关于nginx - 将自定义 nginx.conf 与 Chef Cookbook 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19488553/