如何在vagrant上使用chef solo配置nginx?

如何在vagrant上使用chef solo配置nginx?,nginx,chef-infra,vagrant,Nginx,Chef Infra,Vagrant,我有一个引导正常的流浪VM,我通过以下方式为它提供了nginx: config.vm.provision "chef_solo" do |chef| chef.add_recipe "nginx" 启动时,nginx已安装并正在运行。完美的(我使用Berkschelf管理食谱,其中一本来自opscode) 现在我想实际配置nginx,在本例中是作为反向代理运行的。我似乎不知道该怎么做。我可以准备一个conf文件并将其发送到VM,但我确信还有另一种方法可以利用这个食谱。最好的选择是能够直接从Va

我有一个引导正常的流浪VM,我通过以下方式为它提供了nginx:

config.vm.provision "chef_solo" do |chef|
chef.add_recipe "nginx"
启动时,nginx已安装并正在运行。完美的(我使用Berkschelf管理食谱,其中一本来自opscode)
现在我想实际配置nginx,在本例中是作为反向代理运行的。我似乎不知道该怎么做。我可以准备一个conf文件并将其发送到VM,但我确信还有另一种方法可以利用这个食谱。最好的选择是能够直接从Vagrant文件中按照上面描述的方式配置它。可能使用此处描述的自定义json数据。
它看起来像:

chef.json = {
    "nginx" => {

但是对我来说,烹饪书的页面有点神秘,有一些有趣的选择,但我不知道如何包括/使用它们

如果要将nginx配置为反向代理,则需要编写一个调用
cookbook\u文件
资源或
模板
资源的食谱。我建议使用后者,因为它以后会更灵活,并且会为您提供一个可重用的模板,供其他食谱使用

我建议您阅读以下文档:

如果你想从一本真正的食谱中看到一个反向代理的例子。请看这里:


希望这能有所帮助。

这对我来说很有用:

Vagrant.configure("2") do |config|

    config.vm.box = "opscode-ubuntu-14.04"
    config.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-14.04_chef-provisionerless.box"

    config.omnibus.chef_version = :latest

    config.vm.provision "shell", inline: "echo 'set nocp' > /home/vagrant/.vimrc"

    config.vm.define "nginx" do |nginx|

        nginx.vm.network "private_network", ip: "192.168.33.14"

        nginx.vm.provision :chef_solo do |chef|
            chef.cookbooks_path = "cookbooks"
            chef.add_recipe "nginx"

            chef.json = {
                :nginx => {
                    dir: '/etc/nginx'  # this is the default value, sample only
                }
            }
        end

        nginx.vm.provision "shell",
            inline: "echo -e $1 > /etc/nginx/conf.d/nginx.conf",
            args: [<<-EOS
                server {
                    listen *:80;

                    location ~ ^/ {
                        proxy_pass http://192.168.33.11:8080;
                    }
                }
            EOS
            ]

    end

你看过GitHub上的文档了吗:Chef社区网站的格式对于阅读烹饪书的自述不是特别好。试着在“谢谢你的评论”。事实上,它更容易阅读,但我还没有理解这个文件的格式。任何文档或示例都将不胜感激。请注意,我仍然需要一次随意的重新加载来重新加载nginx.conf配置。
https://github.com/opscode-cookbooks/nginx
    https://github.com/opscode-cookbooks/build-essential
    https://github.com/opscode-cookbooks/ohai
    https://github.com/opscode-cookbooks/bluepill       
        https://github.com/opscode-cookbooks/rsyslog
    https://github.com/hw-cookbooks/runit
    ??
        https://github.com/opscode-cookbooks/yum