It sounds like its seeing a port already in use and trying to recover that, but it looks like you have mixed slashes in the powershell.exe command, mixed slashes are BAD. Try making them all / or all \ in the path to your script.
On Monday, April 13, 2015 at 7:59:11 AM UTC-5, Oliver Bestwalter wrote: > > Hi, > > I dug through the posts here and the open issues on github, but can't find > this specific problem. The only bug I found that might have to do with this > is: https://github.com/mitchellh/vagrant/issues/5313 (saltstack bootstrap > script is always downloaded and run on provision, regardless it is > installed already or not). > > So here goes: > provider: VirtualBox > Host: Linux (Ubuntu 14.04) > Guest: Windows Server 2008 R2 > Vagrantfile: (see end of this post) > > I created the box following this tutorial: > https://dennypc.wordpress.com/2014/06/09/creating-a-windows-box-with-vagrant-1-6/ > Now I am trying to add provisioning with salt and I get this error on > running salt. > > > ############### (hopefully) relevant part of debug log from first vagrant > up #################### > > ==> default: Running provisioner: salt... > INFO environment: Running hook: provisioner_run > INFO runner: Preparing hooks for middleware sequence... > INFO runner: 1 hooks defined. > INFO runner: Running action: #<Method: > Vagrant::Action::Builtin::Provision#run_provisioner> > INFO warden: Calling IN action: > #<Proc:0x007f8e40a1d800@/opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/warden.rb:94 > > (lambda)> > INFO interface: info: Copying salt minion config to vm. > Copying salt minion config to vm. > INFO winrm: Uploading: > /home/obestwalter/work/prodenv/vagrant_winbox/salt/minion to C:\tmp/minion > DEBUG filemanager: Upload: > /home/obestwalter/work/prodenv/vagrant_winbox/salt/minion -> C:\tmp/minion > DEBUG winrmshell: powershell executing: > $dest_file_path = [System.IO.Path]::GetFullPath('C:\tmp/minion') > > if (Test-Path $dest_file_path) { > $crypto_provider = new-object -TypeName > System.Security.Cryptography.MD5CryptoServiceProvider > try { > $file = [System.IO.File]::Open($dest_file_path, > [System.IO.Filemode]::Open, [System.IO.FileAccess]::Read) > $guest_md5 = > ([System.BitConverter]::ToString($crypto_provider.ComputeHash($file))).Replace("-","").ToLower() > } > finally { > $file.Dispose() > } > if ($guest_md5 -eq 'b3093528507e3684b1ed4623e449848c') { > exit 0 > } > } > Write-Host "should upload file $dest_file_path" > exit 1 > > if ($?) { exit 0 } else { if($LASTEXITCODE) { exit $LASTEXITCODE } else { > exit 1 } } > DEBUG winrmshell: Output: {:data=>[{:stdout=>"should upload file > C:\\tmp\\minion"}, {:stdout=>"\n"}], :exitcode=>1} > DEBUG winrmshell: cmd executing: > echo %TEMP% > DEBUG winrmshell: Output: > {:data=>[{:stdout=>"C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\r\n"}], > :exitcode=>0} > DEBUG filemanager: Uploading > '/home/obestwalter/work/prodenv/vagrant_winbox/salt/minion' to temp file > 'C:\Users\ADMINI~1\AppData\Local\Temp/winrm-upload-0.7808051803959843' > DEBUG winrmshell: cmd executing: > echo > IyBXQVJOSU5HIFRISVMgQ09ORklHIElTIEpVU1QgRk9SIFZBR1JBTlQhCgpmaWxlX2NsaWVudDogbG9jYWwKbG9nX2xldmVsOiBpbmZvCnN0YXRlX291dHB1dDogbWl4ZWQKCg== > > >> "C:\Users\ADMINI~1\AppData\Local\Temp/winrm-upload-0.7808051803959843" > DEBUG winrmshell: Output: {:data=>[], :exitcode=>0} > DEBUG filemanager: Decoding temp file > 'C:\Users\ADMINI~1\AppData\Local\Temp/winrm-upload-0.7808051803959843' to > 'C:\tmp/minion' > DEBUG winrmshell: powershell executing: > $tmp_file_path = > [System.IO.Path]::GetFullPath('C:\Users\ADMINI~1\AppData\Local\Temp/winrm-upload-0.7808051803959843') > $dest_file_path = [System.IO.Path]::GetFullPath('C:\tmp/minion') > > if (Test-Path $dest_file_path) { > rm $dest_file_path > } > else { > $dest_dir = > ([System.IO.Path]::GetDirectoryName($dest_file_path)) > New-Item -ItemType directory -Force -Path $dest_dir > } > > $base64_string = Get-Content $tmp_file_path > $bytes = [System.Convert]::FromBase64String($base64_string) > [System.IO.File]::WriteAllBytes($dest_file_path, $bytes) > > if ($?) { exit 0 } else { if($LASTEXITCODE) { exit $LASTEXITCODE } else { > exit 1 } } > DEBUG winrmshell: Output: {:data=>[{:stdout=>"\r\n"}, {:stdout=>"\r\n"}, > {:stdout=>" Directory: C:\\"}, {:stdout=>"\r\n\r\n\r\n"}, > {:stdout=>"Mode LastWriteTime Length Name > \r\n"}, {:stdout=>"---- ------------- > ------ ---- \r\nd---- 13.04.2015 > 14:34 tmp \r\n"}], :exitcode=>0} > INFO interface: info: Checking if C:\salt\salt-minion.exe is installed > Checking if C:\salt\salt-minion.exe is installed > DEBUG winrmshell: powershell executing: > $command = [Array](Get-Command C:\salt\salt-minion.exe > -errorAction SilentlyContinue) > if ($null -eq $command) { exit 1 } > write-host $command[0].Definition > exit 0 > > if ($?) { exit 0 } else { if($LASTEXITCODE) { exit $LASTEXITCODE } else { > exit 1 } } > DEBUG winrmshell: Output: {:data=>[], :exitcode=>1} > INFO interface: info: C:\salt\salt-minion.exe was not found. > C:\salt\salt-minion.exe was not found. > INFO interface: info: Checking if C:\salt\salt-call.exe is installed > Checking if C:\salt\salt-call.exe is installed > DEBUG winrmshell: powershell executing: > $command = [Array](Get-Command C:\salt\salt-call.exe > -errorAction SilentlyContinue) > if ($null -eq $command) { exit 1 } > write-host $command[0].Definition > exit 0 > > if ($?) { exit 0 } else { if($LASTEXITCODE) { exit $LASTEXITCODE } else { > exit 1 } } > DEBUG winrmshell: Output: {:data=>[], :exitcode=>1} > INFO interface: info: C:\salt\salt-call.exe was not found. > C:\salt\salt-call.exe was not found. > INFO interface: info: Bootstrapping Salt... (this may take a while) > Bootstrapping Salt... (this may take a while) > DEBUG winrmshell: powershell executing: > $p = "C:\tmp/bootstrap_salt.ps1" > if ((Test-Path $p) -and (!(get-item $p).PSIsContainer)) { > exit 0 > } > exit 1 > > if ($?) { exit 0 } else { if($LASTEXITCODE) { exit $LASTEXITCODE } else { > exit 1 } } > DEBUG winrmshell: Output: {:data=>[], :exitcode=>1} > INFO winrm: Uploading: > /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/plugins/provisioners/salt/bootstrap-salt.ps1 > > to C:\tmp/bootstrap_salt.ps1 > DEBUG filemanager: Upload: > /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/plugins/provisioners/salt/bootstrap-salt.ps1 > > -> C:\tmp/bootstrap_salt.ps1 > DEBUG winrmshell: powershell executing: > $dest_file_path = > [System.IO.Path]::GetFullPath('C:\tmp/bootstrap_salt.ps1') > > if (Test-Path $dest_file_path) { > $crypto_provider = new-object -TypeName > System.Security.Cryptography.MD5CryptoServiceProvider > try { > $file = [System.IO.File]::Open($dest_file_path, > [System.IO.Filemode]::Open, [System.IO.FileAccess]::Read) > $guest_md5 = > ([System.BitConverter]::ToString($crypto_provider.ComputeHash($file))).Replace("-","").ToLower() > } > finally { > $file.Dispose() > } > if ($guest_md5 -eq 'c7d8762ae87333a423f1d68b2e08f585') { > exit 0 > } > } > Write-Host "should upload file $dest_file_path" > exit 1 > > if ($?) { exit 0 } else { if($LASTEXITCODE) { exit $LASTEXITCODE } else { > exit 1 } } > DEBUG winrmshell: Output: {:data=>[{:stdout=>"should upload file > C:\\tmp\\bootstrap_salt.ps1"}, {:stdout=>"\n"}], :exitcode=>1} > DEBUG winrmshell: cmd executing: > echo %TEMP% > DEBUG winrmshell: Output: > {:data=>[{:stdout=>"C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\r\n"}], > :exitcode=>0} > DEBUG filemanager: Uploading > '/opt/vagrant/embedded/gems/gems/vagrant-1.7.2/plugins/provisioners/salt/bootstrap-salt.ps1' > > to temp file > 'C:\Users\ADMINI~1\AppData\Local\Temp/winrm-upload-0.29892565979715235' > DEBUG winrmshell: cmd executing: > echo > IyBTYWx0IHZlcnNpb24gdG8gaW5zdGFsbAokdmVyc2lvbiA9ICcyMDE0LjEuMTAnCgojIENyZWF0ZSBDOlx0bXBcIC0gaWYgVmFncmFudCBkb2Vzbid0IHVwbG9hZCBrZXlzIGFuZC9vciBjb25maWcgaXQgbWlnaHQgbm90IGV4aXN0Ck5ldy1JdGVtIEM6XHRtcFwgLUl0ZW1UeXBlIGRpcmVjdG9yeSB8IG91dC1udWxsCgojIENvcHkgbWluaW9uIGtleXMgJiBjb25maWcgdG8gY29ycmVjdCBsb2NhdGlvbgpOZXctSXRlbSBDOlxzYWx0XGNvbmZccGtpXG1pbmlvblwgLUl0ZW1UeXBlIGRpcmVjdG9yeSB8IG91dC1udWxsCgojIENoZWNrIGlmIG1pbmlvbiBrZXlzIGhhdmUgYmVlbiB1cGxvYWRlZAppZiAoVGVzdC1QYXRoIEM6XHRtcFxtaW5pb24ucGVtKSB7CiAgY3AgQzpcdG1wXG1pbmlvbi5wZW0gQzpcc2FsdFxjb25mXHBraVxtaW5pb25cCiAgY3AgQzpcdG1wXG1pbmlvbi5wdWIgQzpcc2FsdFxjb25mXHBraVxtaW5pb25cCn0KCiMgQ2hlY2sgaWYgbWluaW9uIGNvbmZpZyBoYXMgYmVlbiB1cGxvYWRlZAppZiAoVGVzdC1QYXRoIEM6XHRtcFxtaW5pb24pIHsKICBjcCBDOlx0bXBcbWluaW9uIEM6XHNhbHRcY29uZlwKfQoKIyBEZXRlY3QgYXJjaGl0ZWN0dXJlCmlmIChbSW50UHRyXTo6U2l6ZSAtZXEgNCkgewogICRhcmNoID0gIndpbjMyIgp9IGVsc2UgewogICRhcmNoID0gIkFNRDY0Igp9CgojIERvd25sb2FkIG1pbmlvbiBzZXR1cCBmaWxlCldyaXRlLUhvc3QgIkRvd25sb2FkaW5nIFNhbHQgbWluaW9uIGluc3RhbGxlciAoJGFyY2gpLi4uIgokd2ViY2xpZW50ID0gTmV3LU9iamVjdCBTeXN0ZW0uTmV0LldlYkNsaWVudAokdXJsID0gImh0dHBzOi8vZG9jcy5zYWx0c3RhY2suY29tL2Rvd25sb2Fkcy9TYWx0LU1pbmlvbi0kdmVyc2lvbi0kYXJjaC1TZXR1cC5leGUiCiRmaWxlID0gIkM6XHRtcFxzYWx0LmV4ZSIKJHdlYmNsaWVudC5Eb3dubG9hZEZpbGUoJHVybCwgJGZpbGUpCgojIEluc3RhbGwgbWluaW9uIHNpbGVudGx5CldyaXRlLUhvc3QgIkluc3RhbGxpbmcgU2FsdCBtaW5pb24uLi4iCkM6XHRtcFxzYWx0LmV4ZSAvUwoKIyBXYWl0IGZvciBzYWx0LW1pbmlvbiBzZXJ2aWNlIHRvIGJlIHJlZ2lzdGVyZWQgYmVmb3JlIHRyeWluZyB0byBzdGFydCBpdAokc2VydmljZSA9IEdldC1TZXJ2aWNlIHNhbHQtbWluaW9uIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlCldoaWxlICghJHNlcnZpY2UpIHsKICBTdGFydC1TbGVlcCAtcyAyCiAgJHNlcnZpY2UgPSBHZXQtU2VydmljZSBzYWx0LW1pbmlvbiAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZQp9CgojIFN0YXJ0IHNlcnZpY2UKU3RhcnQtU2VydmljZSAtTmFtZSAic2FsdC1taW5pb24iIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlCgojIENoZWNrIGlmIHNlcnZpY2UgaXMgc3RhcnRlZCwgb3RoZXJ3aXNlIHJldHJ5IHN0YXJ0aW5nIHRoZSAKIyBzZXJ2aWNlIDQgdGltZXMuCiR0cnkgPSAwCldoaWxlICgoJHNlcnZpY2UuU3RhdHVzIC1uZSAiUnVubmluZyIpIC1hbmQgKCR0cnkgLW5lIDQpKSB7CiAgU3RhcnQtU2VydmljZSAtTmFtZSAic2FsdC1taW5pb24iIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlCiAgJHNlcnZpY2UgPSBHZXQtU2VydmljZSBzYWx0LW1pbmlvbiAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZQogIFN0YXJ0LVNsZWVwIC1zIDIKICAkdHJ5ICs9IDEKfQoKIyBJZiB0aGUgc2FsdC1taW5pb24gc2VydmljZSBpcyBzdGlsbCBub3QgcnVubmluZywgc29tZXRoaW5nIHByb2JhYmx5CiMgd2VudCB3cm9uZyBhbmQgdXNlciBpbnRlcnZlbnRpb24gaXMgcmVxdWlyZWQgLSByZXBvcnQgZmFpbHVyZS4KaWYgKCRzZXJ2aWNlLlN0YXR1cyAtZXEgIlN0b3BwZWQiKSB7CiAgV3JpdGUtSG9zdCAiRmFpbGVkIHRvIHN0YXJ0IFNhbHQgbWluaW9uIgogIGV4aXQgMQp9CgpXcml0ZS1Ib3N0ICJTYWx0IG1pbmlvbiBzdWNjZXNzZnVsbHkgaW5zdGFsbGVkIgo= > > >> "C:\Users\ADMINI~1\AppData\Local\Temp/winrm-upload-0.29892565979715235" > DEBUG winrmshell: Output: {:data=>[], :exitcode=>0} > DEBUG filemanager: Decoding temp file > 'C:\Users\ADMINI~1\AppData\Local\Temp/winrm-upload-0.29892565979715235' to > 'C:\tmp/bootstrap_salt.ps1' > DEBUG winrmshell: powershell executing: > $tmp_file_path = > [System.IO.Path]::GetFullPath('C:\Users\ADMINI~1\AppData\Local\Temp/winrm-upload-0.29892565979715235') > $dest_file_path = > [System.IO.Path]::GetFullPath('C:\tmp/bootstrap_salt.ps1') > > if (Test-Path $dest_file_path) { > rm $dest_file_path > } > else { > $dest_dir = > ([System.IO.Path]::GetDirectoryName($dest_file_path)) > New-Item -ItemType directory -Force -Path $dest_dir > } > > $base64_string = Get-Content $tmp_file_path > $bytes = [System.Convert]::FromBase64String($base64_string) > [System.IO.File]::WriteAllBytes($dest_file_path, $bytes) > > if ($?) { exit 0 } else { if($LASTEXITCODE) { exit $LASTEXITCODE } else { > exit 1 } } > DEBUG winrmshell: Output: {:data=>[{:stdout=>"\r\n"}, {:stdout=>"\r\n"}, > {:stdout=>" Directory: C:\\"}, {:stdout=>"\r\n\r\n\r\n"}, > {:stdout=>"Mode LastWriteTime Length Name > "}, {:stdout=>"\r\n---- ------------- > ------ ---- \r\n"}, {:stdout=>"d---- > 13.04.2015 14:34 tmp \r\n"}], > :exitcode=>0} > DEBUG winrmshell: powershell executing: > powershell.exe -executionpolicy bypass -file C:\tmp/bootstrap_salt.ps1 > if ($?) { exit 0 } else { if($LASTEXITCODE) { exit $LASTEXITCODE } else { > exit 1 } } > DEBUG winrmshell: Output: {:data=>[{:stderr=>"New-Item : Item with > specified name C:\\tmp\\ already exists.\r\n"}, {:stderr=>"At > C:\\tmp\\bootstrap_salt.ps1:5 char:9\r\n"}, {:stderr=>"+ New-Item <<<< > C:\\tmp\\ -ItemType directory | out-null\r\n + CategoryInfo : > ResourceExists: (C:\\tmp\\:String) [New-Item], IOE \r\n xception\r\n + > FullyQualifiedErrorId : DirectoryExist,Microsoft.PowerShell.Commands.New > \r\n ItemCommand\r\n \r\n"}, {:stdout=>"Downloading Salt minion installer > (AMD64)..."}, {:stdout=>"\n"}, {:stdout=>"Installing Salt minion..."}, > {:stdout=>"\n"}, {:stdout=>"Failed to start Salt minion"}, > {:stdout=>"\n"}], :exitcode=>1} > ERROR warden: Error occurred: The following WinRM command responded with a > non-zero exit status. > Vagrant assumes that this means the command failed! > > powershell.exe -executionpolicy bypass -file C:\tmp/bootstrap_salt.ps1 > if ($?) { exit 0 } else { if($LASTEXITCODE) { exit $LASTEXITCODE } else { > exit 1 } } > > Stdout from the command: > > > > Stderr from the command: > > New-Item : Item with specified name C:\tmp\ already exists. > At C:\tmp\bootstrap_salt.ps1:5 char:9 > + New-Item <<<< C:\tmp\ -ItemType directory | out-null > + CategoryInfo : ResourceExists: (C:\tmp\:String) [New-Item], > IOE > xception > + FullyQualifiedErrorId : > DirectoryExist,Microsoft.PowerShell.Commands.New > ItemCommand > > > INFO warden: Beginning recovery process... > INFO warden: Recovery complete. > ERROR warden: Error occurred: The following WinRM command responded with a > non-zero exit status. > Vagrant assumes that this means the command failed! > > powershell.exe -executionpolicy bypass -file C:\tmp/bootstrap_salt.ps1 > if ($?) { exit 0 } else { if($LASTEXITCODE) { exit $LASTEXITCODE } else { > exit 1 } } > > Stdout from the command: > > > > Stderr from the command: > > New-Item : Item with specified name C:\tmp\ already exists. > At C:\tmp\bootstrap_salt.ps1:5 char:9 > + New-Item <<<< C:\tmp\ -ItemType directory | out-null > + CategoryInfo : ResourceExists: (C:\tmp\:String) [New-Item], > IOE > xception > + FullyQualifiedErrorId : > DirectoryExist,Microsoft.PowerShell.Commands.New > ItemCommand > > > INFO warden: Beginning recovery process... > INFO warden: Calling recover: > #<Vagrant::Action::Builtin::HandleForwardedPortCollisions:0x00000001550a68> > INFO warden: Recovery complete. > INFO warden: Beginning recovery process... > INFO warden: Recovery complete. > INFO warden: Beginning recovery process... > INFO warden: Recovery complete. > INFO warden: Beginning recovery process... > INFO warden: Recovery complete. > INFO warden: Beginning recovery process... > INFO warden: Recovery complete. > > [...] etc. (runs into this error several times, before giving up) > > ############################### Vagrantfile > #################################### > > Vagrant.configure("2") do |config| > config.vm.box = "w2k8_r2_base" > config.vm.communicator = "winrm" > config.winrm.username = "Administrator" > config.winrm.password = "Vagrant123" > config.vm.network "forwarded_port", guest: 3389, host: 33389, id: "rdp", > auto_correct: true > > config.vm.provider :virtualbox do |v, override| > v.customize ["modifyvm", :id, "--memory", 2048] > v.customize ["modifyvm", :id, "--cpus", 2] > end > > config.vm.synced_folder ".", "C:/salt/srv/salt/" > config.vm.provision :salt do |salt| > salt.minion_config = "salt/minion" > salt.run_highstate = true > end > end > > ############################### Vagrantfile > #################################### > > Cheers > Oliver > -- You received this message because you are subscribed to the Google Groups "Vagrant" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
