主机: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
答案 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 后,它仍然有效。
我想在我的情况下,文件名中有一些奇怪的隐形字符。