7

所以我使用以下命令创建了一个 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 的文件夹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"

...但这并没有解决问题。我仍然收到相同的错误消息。

4

1 回答 1

8

经过一些实验,非常明显的答案是:

puppet.manifests_path = File.expand_path("../manifests", __FILE__)
于 2012-12-29T19:47:51.220 回答