所以我使用以下命令创建了一个Vagrant框:
vagrant package --base box_name_here --vagrantfile Vagrantfile --include manifests/
manifests/
是一个带有puppet清单的目录,以及一些子目录,其中包含在配置过程中使用的一些文件。在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"
......但这并未解决问题。我仍然收到相同的错误消息。
答案 0 :(得分:7)
经过一些实验,非常明显的答案是:
puppet.manifests_path = File.expand_path("../manifests", __FILE__)