因此,我使用以下命令创建了一个Vagrant框:

vagrant package --base box_name_here --vagrantfile Vagrantfile --include manifests/


manifests/是一个带有伪造的清单的目录,一些子目录包含一些在配置过程中使用的文件。在Vagrantfile中像这样调用Puppet:

config.vm.provision :puppet do |puppet|
    puppet.manifests_path = "manifests"
    puppet.manifest_file  = "web-dev.pp"
end


当我浏览Vagrant创建的打包的.box存档时,我看到位于box_name_here.box/includes/manifests的文件夹。但是,当我尝试运行vagrant up时,它死于以下错误:


为Puppet指定的清单清单路径不存在:c:/ vagrant / manifests


文件在其他地方吗?

我看到了这篇文章:https://github.com/mitchellh/vagrant/issues/344

但是答案有点模糊。我不太了解如何将modulepath响应转换为manifests_path问题。

我更改了vagrantfile,使该行显示为

puppet.manifests_path = "./manifests"


...但是那并不能解决问题。我仍然收到相同的错误消息。

最佳答案

经过一番试验,令人难以置信的显而易见的答案是:

puppet.manifests_path = File.expand_path("../manifests", __FILE__)

10-08 09:36