Building a Base Box ===================
-Enable WinRM
winrm quickconfig -q
winrm set winrm/config/winrs @{MaxMemoryPerShellMB="512"}
winrm set winrm/config @{MaxTimeoutms="1800000"}
winrm set winrm/config/service @{AllowUnencrypted="true"}
winrm set winrm/config/service/auth @{Basic="true"}
Create a vagrant user
- For things to work out of the box, username and password should both be vagrant
Turn off UAC
Disable Shutdown Tracker
The Vagrant File
Add the following to your Vagrantfile
config.vm.guest = :windows
config.vm.forward_port 3389, 3390, :name => "rdp", :auto => true
config.vm.forward_port 5985, 5985, :name => "winrm", :auto => true
Example:
Vagrant::Config.run do |config|
# Configure base box parameters
config.vm.box = "windows2008r2"
config.vm.box_url = "./windows-2008-r2.box"
config.vm.guest = :windows
config.vm.forward_port 3389, 3390, :name => "rdp", :auto => true
config.vm.forward_port 5985, 5985, :name => "winrm", :auto => true
config.vm.provision :chef_solo do |chef|
chef.add_recipe("your::recipe")
end
end
What Works?
===========
- vagrant up|hault|reload|provision
- Chef Vagrant Provisioner
What has not been tested
========================
- Everything Else!!!
- Shell and Puppet Provisioners
- Shell should work, though I have not vetted it yet.
What Can I do to help?
======================
1. Contribute Code (See Below)
2. Test Various Scenarios and file bugs for things that dont work
Contributing
============
1. Fork it.
2. Create a branch (git checkout -b my_feature_branch)
3. Commit your changes (git commit -am "Added a sweet feature")
4. Push to the branch (git push origin my_feature_branch)
5. Create a pull requst from your branch into master (Please be sure to provide enough detail for us to cipher what this change is doing)
References and Shout Outs
=========================
Chris McClimans - Vagrant Branch (https://github.com/hh/vagrant/blob/feature/winrm/)
Dan Wanek - WinRM GEM (https://github.com/zenchild/WinRM)
+1 For being super responsive to pull requests.