nginx - 将自定义 nginx.conf 与 Chef Cookbook 结合使用

标签 nginx chef-infra vagrant cookbook

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

说明:

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

底线,我不使用 nginx 说明书安装 nginx;相反,我将其作为包安装,然后根据我的需要进行配置。

关于nginx - 将自定义 nginx.conf 与 Chef Cookbook 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19488553/

相关文章:

caching - kubernetes nginx 入口 Controller /缓存静态 Assets

linux - Chefspec 在 Linux 上删除 Win32::Service

ajax - Elasticsearch 在使用 NGINX 和 UWSGI 返回结果时非常不可靠

python - uWSGI和Nginx中MySQL连接出现502错误

deployment - 我的应用程序多次安装 - 我该如何处理

vagrant - 一个更好的 Vagrant 替代品

apache - 在 guest VM 上运行 Apache 和 Tomcat,Tomcat 重定向到主机

symfony - 在 Vagrant 上使用 Composer 时出现错误 "could not delete"

php - 没有通过 nginx/FastCGI 传递给 php-fpm 的脚本名称

chef-infra - Chef solo nginx Recipe 不符合我的属性