如何使用Vagrant框打包文件?

时间:2012-12-29 17:36:13

标签: virtualization virtualbox provisioning puppet vagrant

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

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

1 个答案:

答案 0 :(得分:7)

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

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