Сценарий Vagrant Provisioning не копируется в расположение хоста

Хост: Windows 7

Гость: Windows 8

У меня есть простой Vagrantfile, который запускает сценарий PowerShell для подготовки гостя. Когда я упаковал коробку, я увидел, что файл добавлен, но когда я запускаю 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?

Бродячий файл:

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

person my_overflowed_stack    schedule 25.09.2014    source источник
comment
В бродячих документах говорится, что path относительно местоположения Vagrantfile. Я еще не создавал свои собственные ящики, поэтому может быть отключен, но вы можете попробовать перетащить этот файл прямо в то же место, что и Vagrantfile, чтобы проверить, поднят ли он.   -  person BrianC    schedule 29.09.2014
comment
Это происходит, когда я вручную добавляю файл, но это противоречит цели. Когда я делаю vagrant box add [my box], он упаковывает мой ящик и добавляет сценарий PowerShell в ящик под местоположением: D:\VirtualMachines\vagrant\boxes\TestAgent\0\virtualbox\include Я предполагаю, что когда я запускаю vagrant up в другом каталоге (D:\VirtualMachines\test\), он должен скопировать файл обеспечения в это новое местоположение, чтобы его можно было бег. Я ошибаюсь в этом предположении?   -  person my_overflowed_stack    schedule 29.09.2014
comment
Разобрался, см. Мой ответ ниже.   -  person my_overflowed_stack    schedule 29.09.2014


Ответы (2)


Ответ на Как упаковать файлы с помощью ящика Vagrant? помог мне.

Вот как я заставил его работать:

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

У меня была такая же проблема с Vagrant 1.8.1 на хосте Windows 8. После прочтения https://github.com/fideloper/Vaprobash/issues/30 Я просто переименовал bootstrap.sh в bootstrp.sh, попробовал еще раз, и это сработало. После переименования bootstrp.sh в bootstrap.sh он все еще работал.

Полагаю, в моем случае в имени файла был какой-то странный невидимый символ.

person Juri Sinitson    schedule 22.05.2016