mitchellh/vagrant-rackspace — pull request #93 by maxlinc (2014-05-07 17:52:26+00:00)
Title: Experimental Windows Support

There are some things in this PR I think probably shouldn't be merged, at least without changes, but I thought the diff would be useful for discussion.

Vagrant 1.6 has been released, and includes better support for [Windows Guests](http://www.vagrantup.com/blog/feature-preview-vagrant-1-6-windows.html). I have a working spike of vagrant-rackspace with Windows, which creates a server from a base windows image and uses simple winrm (combined with [chocolatey](https://chocolatey.org/)) to install ruby + ruby devkit, git, clone fog, and run fog's unit tests.

The minimal set of changes I think are required to get WinRM working are:
- [ ] Allow vagrant-rackspace to choose the admin password, or find a way to store the generated password for later use. This is the vagrant counterpart to https://github.com/fog/fog/pull/2802.
- [ ] Make sure vagrant-rackspace doesn't block waiting for SSH or rsync, and uses the sync'ed folder plugins that are now in vagrant core. Related to https://github.com/mitchellh/vagrant-rackspace/issues/84. I did this by ripping out our rsync support completely, but that's only compatible with vagrant 1.5+.
- [ ] Upload a `bootstrap.cmd` script to configure WinRM. I did this by letting vagrant set the personality options for the server. (Note that I also had to convert *nix to Windows line-endings)

@krames, @elight - can you review those three items?

Known limitations - server-side (i.e. needs a solution that's specific to Rackspace server provisioning):
- Security: I did not setup SSL for WinRM. This needs to be done on the server side. I also haven't experimented with [Certificate-based auth](http://www.cloudbase.it/windows-without-passwords-in-openstack/), which would likely require vagrant core changes as well.

Known limitations - client-side (i.e. might be resolved by generic vagrant core changes):
- Sync'ed Folders: I don't know a good way to sync folders from OSX to Win yet. Vagrant does have support for NFS and Samba, but I haven't checked they didn't work in the OSX->Win scenario
- Authentication: I am using basic auth with a known username/password. I know the password because I am setting it explicitly during server creation (rather than letting the service generate a password). I haven't tested a setup with Kerberos (which may be tricky on OSX) or [Certificate-based auth], and I'm not sure vagrant core currently supports them.

Despite these limitations, the support is still useful for some workflows. I think the main thing, though, is just making sure vagrant-rackspace is out of the way so users can take advantage of Windows Guest support as it improves in vagrant core.