- Vagrant 1.0 should use
gem "vagrant-windows", "~> 0.1.2"
- Vagrant 1.1 should use
gem "vagrant-windows", "~> 1.0.0"
- Vagrant 1.2 is not yet supported. There needs to be a refactor to support capabilities. We are looking for a backwards compatiable way to implement this.
Does NOT work with Windows 2003 or XP
- Windows 7
- Windows 2008
- Windows 2008 R2
- Windows 2012
- Windows 8
-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 (Msconfig)
- Disable complex passwords
Add the following to your Vagrantfile
config.vm.guest = :windows
config.windows.halt_timeout = 15
config.winrm.username = "vagrant"
config.winrm.password = "vagrant"
config.vm.network :forwarded_port, guest: 3389, host: 3389
config.vm.network :forwarded_port, guest: 5985, host: 5985
Example:
Vagrant.configure("2") do |config|
# Max time to wait for the guest to shutdown
config.windows.halt_timeout = 15
# Admin user name and password
config.winrm.username = "vagrant"
config.winrm.password = "vagrant"
# Configure base box parameters
config.vm.box = "vagrant-windows2008r2"
config.vm.box_url = "./vagrant-windows2008r2.box"
config.vm.guest = :windows
# Port forward WinRM and RDP
config.vm.network :forwarded_port, guest: 3389, host: 3389
config.vm.network :forwarded_port, guest: 5985, host: 5985
end
Available Config Parameters:
config.windows.halt_timeout
- How long Vagrant should wait for the guest to shutdown before forcing exit, defaults to 30 secondsconfig.windows.halt_check_interval
- How often Vagrant should check if the system has shutdown, defaults to 1 secondconfig.winrm.username
- The Windows guest admin user name, defaults to vagrant.config.winrm.password
- The above's password, defaults to vagrant.config.winrm.host
- The IP of the guest, but because we use NAT with port forwarding this defaults to localhost.config.winrm.guest_port
- The guest's WinRM port, defaults to 5985.config.winrm.port
- The WinRM port on the host, defaults to 5985. You might need to change this if your hosts is also Windows.config.winrm.max_tries
- The number of retries to connect to WinRM, defaults to 12.config.winrm.timeout
- The max number of seconds to wait for a WinRM response, defaults to 1800 seconds.
Note - You need to ensure you specify a config.windows and a config.winrm in your Vagrantfile. Currently there's a problem where Vagrant will not load the plugin config even with defaults if at least one of its values doesn't exist in the Vagrantfile.
- vagrant up|halt|reload|provision
- Chef Vagrant Provisioner
- Puppet Vagrant Provisioner
- Shell provisioning. Shell should work, though I have not vetted it yet.
- Test it! We need to test on more hosts, guests, and VBox versions. Help wanted.
- Vagrant 1.2 support. Unfortunately it appears there are some breaking changes with guests between Vagrant 1.1. and 1.2.
- Chef-Client support.
- Unit tests.
- Better docs.
- Ensure you've followed the WinRM configuration instructions above.
- Ensure you can manually login using the specified config.winrm.username you've specified in your Vagrantfile.
- Ensure your password hasn't expired.
- Ensure your password doesn't need to be changed because of policy.
- Ensure you've properly setup port forwarding of WinRM
- Make sure your VM can boot manually through VBox.
- Ensure UAC is turned off
- Ensure your vagrant user is an admin on the guest
- The SQL Server installer uses a lot of resources, ensure WinRM Quota Management is properly configured to give it enough resources.
- See COOK-1172 and http://stackoverflow.com/a/15235996/82906 for more information.
If all else fails try running vagrant with debug logging, perhaps that will give you enough insight to fix the problem or file an issue.
- Contribute Code (See Below)
- Test Various Scenarios and file bugs for things that dont work
- Fork it.
- Create a branch (git checkout -b my_feature_branch)
- Commit your changes (git commit -am "Added a sweet feature")
- Push to the branch (git push origin my_feature_branch)
- 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)
Clone this repository and use Bundler to get the dependencies:
$ bundle install
Once you have the dependencies, you can run the tests with rake
:
$ rake spec
- 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.
0.1.1 - Remove extra debug information from command output.
0.1.2 - Added virtual box 4.2 support.
0.1.3 - Added puppet provisioner.
1.0.0 - Converted to Vagrant 1.1.x plugin architecture.
1.1.1 - Fix #29 Monkey Patch the 4.2 driver to include read_mac_addresses. use read_mac_addresses in all cases.