I'm using a basic windows box created from a fresh 2012r2 VirtualBox VM. 
All works is done as the typical Administrator user. I have a Chef recipe 
that works when run from the command line in an rdp session on a freshly 
up'd machine.The same recipe behaves differently when configured to run 
through the chef_solo provisioner in the Vagrantfile. 

After installing the svn chocolatey package and creating a local user, svn 
credentials need to be cached for the new user. I'm doing this by running a 
generic svn command, as the user, against the server in question. Using a 
Chef powershell_script resource:

powershell_script "cache-svn-creds" do
  cwd "C:\\Program Files (x86)\\Subversion\\bin"
  code <<-PS_Script
  $local_user = New-Object System.Management.Automation.PsCredential(
"local_user",(ConvertTo-SecureString "P@ssword" -AsPlainText -Force))
    $svn_args = 
      @("ls","https://mysvn.com/svn/repos/foo/trunk";,
        "--username", "svn_user", "--password", "svn_password",
        "--non-interactive")
    Start-Process "svn.exe" -ArgumentList $svn_args -Credential $local_user 
-NoNewWindow -Wait
  PS_Script
end


This does not cause an error, and the Chef output explicitly indicates the 
resource ran successfully. But in the provisioner case it fails to have any 
affect. If run from the command line after rdp'ing into a freshly up'd 
(non-provisioned) box, it works exactly as expected.

I suspect there is something about the winrm session established for the 
provisioner that affects the behavior, but that is a wild guess. Does 
anyone have a suggestion for getting this to work through the provisioner?

Here's my Vagrantfile:

Vagrant.require_version ">= 1.6.0"


Vagrant.configure(2) do |config|
  config.vm.box = "2012r2_01"
  config.vm.communicator = "winrm"
  config.winrm.username = "Administrator"
  config.winrm.password = "Foo1Bar!"
  config.vm.network "forwarded_port", host: 33389, guest: 3389
  config.vm.network "forwarded_port", host: 22222, guest: 22


  config.vm.provision "chef_solo" do |chef|
    chef.add_recipe "foo::jenkins_winagent"
  end
end


When testing on the box, I comment out the provisioner above, rdp as 
Administrator and run:

chef-client --local-mode --runlist 'recipe[foo::jenkins_winagent]'

 

-- 
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.

Reply via email to