自动下载&在流浪盒上安装食谱

时间:2016-05-19 13:51:07

标签: vagrant chef virtualbox vagrantfile berkshelf

我尝试创建一个Vagrant框,在我运行vagrant up时安装一些服务。

为此目的,我正在使用这些服务:

  • Oracle VirtualBox
  • Chef Solo provisioner
  • Berkshelf
  • Vagrant Berkshelf Plugin

我使用Berkshelf来处理食谱依赖。

某些烹饪书出现问题,而这些烹饪书根本不会安装。 目前我正在尝试从我在Chef Supermarket上发现的食谱中安装nginx - nginx cookbook

Berksfile:

source "https://supermarket.chef.io"
cookbook "nginx"

Vagrantfile:

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

    config.vm.box = "CentOS-6.5-minimal-0.1.1"
    config.vm.network "private_network", ip: "192.168.33.10"
    config.vm.hostname = "vagrant"
    config.vm.synced_folder ".", "/var/www", :mount_options => ["dmode=777", "fmode=666"]

    config.berkshelf.enabled = true
    config.vm.provision :chef_solo do |chef|
      chef.cookbooks_path = ["cookbooks"]
      chef.add_recipe "nginx"
    end

end

我尝试使用vagrant provision的组合运行vagrant reload并关闭框并运行vagrant up

我最接近确定问题原因的是 this stacktrace ,我在运行vagrant provision时得到了。

非常感谢您解决此问题的任何帮助。

1 个答案:

答案 0 :(得分:0)

这里的关键问题是您使用的是Hashcorp默认框(Starting Chef Client, version 11.8.2)中附带的Chef版本。此版本太旧,无法使用当前的nginx食谱。你可能想要使用不包含烘焙版厨师的便当盒,然后通过Vagrant的综合支持来安装它。