Vagrant配置脚本未复制到主机位置

时间:2014-09-25 18:55:49

标签: vagrant vagrantfile

主机:Windows 7

访客:Windows 8

我有一个简单的Vagrantfile,它运行一个PowerShell脚本来配置guest虚拟机。当我打包盒子时,我看到文件已添加,但是当我运行vagrant up时,我收到错误shell provisioner:* `path` for shell provisioner does not exist on the host system: D:/VirtualMachines/test/provision.ps1

我确认provision.ps1目录下的流浪者邮箱位置中存在include

那么,当我运行provision.ps1时,为什么不会vagrant up被复制到所需的位置?

Vagrant档案:

VAGRANTFILE_API_VERSION = "2"
modified_name = ENV["COMPUTERNAME"][0..12]
comp_name = modified_name + "TA"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "base"
  config.vm.hostname = comp_name
  config.vm.communicator = "winrm"
  config.vm.network "forwarded_port", host: 3389, guest: 3389, auto_correct: true 
  config.vm.provision "shell", path: "provision.ps1"
end

2 个答案:

答案 0 :(得分:6)

How to package files with a Vagrant box?的答案帮助了我。

以下是我如何使用它:

  config.vm.provision "shell" do |s|
    p = File.expand_path("../", __FILE__)
    s.path = p + "\\provision.ps1"
  end 

答案 1 :(得分:1)

我在主机Windows 8上遇到与Vagrant 1.8.1相同的问题。在阅读https://github.com/fideloper/Vaprobash/issues/30后,我刚刚将 bootstrap.sh 重命名为 bootstrp.sh ,再次尝试,它的工作原理。将 bootstrp.sh 重命名为 bootstrap.sh 后,它仍然有效。

我想在我的情况下,文件名中有一些奇怪的隐形字符。