[ANN] Vagrant 0.6.9. Works on 64-bit Windows! And Puppet!

155 views
Skip to first unread message

Mitchell Hashimoto

unread,
Dec 21, 2010, 11:14:09 PM12/21/10
to vagra...@googlegroups.com
Happy holidays everyone! I've released Vagrant 0.6.9 which is quite a
large release for a patch release. Vagrant now magically works on
64-bit Windows machines (READ BELOW FIRST) and also has a Puppet
provisioner.

As an immediate note: I've opted to retain the patch release bump
rather than bump the minor version since while there are two really
big announcements with this release, the core changed relatively
little, and therefore the risk for breaking previous releases is not
high.

Windows 64-bit
================================================
If you look back on IRC logs, mailing list logs, etc, the general
consensus has been "its impossible" due to a bug in CRuby. But Vagrant
now works in 64-bit, but via JRuby. A _huge_ thanks needs to go out
right now to Matthew Reider, Charles Nutter, Nick Sieger, and Thomas
Enebo (EngineYard and JRuby team) for working extra hard to fix up the
bugs blocking Vagrant from working.

A guide has been posted on the Vagrant website outlining the details
of setting up Vagrant on 64-bit Windows:
http://vagrantup.com/docs/getting-started/setup/windows_x64.html

Note that since this is the least tested platform, there may still be
some cases where it doesn't work as expected. Please report those
issues in the issue tracker on GitHub and I'll prioritize to fix
those. Additionally, there are known issues with host only networking
not working on Windows, and that will be fixed early in 2011.

With this, Vagrant now works on Linux, Mac, and Windows cleanly and
uniformly, making it the ultimate cross-platform development
environment tool. Take your boxes from one machine to the next and be
comforted in knowing it'll work as expected.

Puppet
================================================
James Turnbull has contributed a Puppet provisioner for Vagrant. Not
only that, but he also wrote the documentation for it as well, so
there is a full page detailing Puppet on Vagrant (URL below). And, if
that wasn't enough, he also updated the getting started guide to be
Puppet-friendly as well. This feature was 100% James. Thanks!

To learn how to use Puppet with Vagrant, check out the documentation
here: http://vagrantup.com/docs/provisioners/puppet.html

Conclusion
================================================
I hope everyone has a great holiday. I'll see you all in 2011 with
Vagrant 0.7. ;)

Best,
Mitchell

Mike Williams

unread,
Dec 22, 2010, 6:11:59 PM12/22/10
to vagra...@googlegroups.com
On 22/12/2010, at 15:14 , Mitchell Hashimoto wrote:

Happy holidays everyone! I've released Vagrant 0.6.9 which is quite a
large release for a patch release.

After upgrading to 0.6.9, I have problems using existing VMs:

$ vagrant status
Current VM states:

vm01                     not created
vm02                     not created

Downgrading to 0.6.8 makes things work properly again:

$ vagrant status
Current VM states:

vm01                     running
vm02                     powered off

Mitchell, has the format of the ".vagrant" file changed in 0.6.9?  My ".vagrant" looks like this:

{"active":{"vm01":"dddf0320-5fbb-4d40-9a8d-227582729049","vm02":"d66e5764-5b3a-49d3-9e5c-39c44ed991ed"}}

-- 
cheers, 
Mike Williams

Mitchell Hashimoto

unread,
Dec 22, 2010, 9:41:03 PM12/22/10
to vagra...@googlegroups.com
Mike,

I'm investigating this now.

Mitchell

Mitchell Hashimoto

unread,
Dec 22, 2010, 9:47:33 PM12/22/10
to vagra...@googlegroups.com
Mike,

The ".vagrant" syntax didn't change at all, which is why this is a bit
confusing to me. I've been trying to reproduce this but haven't been
able to yet. I've still got some ideas up my sleeve but we'll see.

I've got some family [holiday-related] business to attend to but I'll
continue looking into this tonight.

Best,
Mitchell

Mitchell Hashimoto

unread,
Dec 23, 2010, 8:49:54 PM12/23/10
to vagra...@googlegroups.com
Mike,

Okay, so there are the steps I used to try to repro this:

1. Uninstall all versions of Vagrant
2. Install Vagrant 0.6.8
3. Up a multi-VM environment (vm01, vm02)
4. Check the status. Both running, good.
5. Install Vagrant 0.6.9
6. Check the status.

And I haven't been able to reproduce your issue, both VMs still showed
up as running... Any hints?

Best,
Mitchell

On Wed, Dec 22, 2010 at 6:47 PM, Mitchell Hashimoto

Mike Williams

unread,
Dec 29, 2010, 3:11:11 AM12/29/10
to vagra...@googlegroups.com
On 24/12/2010, at 12:49 , Mitchell Hashimoto wrote:

Okay, so there are the steps I used to try to repro this:

1. Uninstall all versions of Vagrant
2. Install Vagrant 0.6.8
3. Up a multi-VM environment (vm01, vm02)
4. Check the status. Both running, good.
5. Install Vagrant 0.6.9
6. Check the status.

And I haven't been able to reproduce your issue, both VMs still showed
up as running... Any hints?

Hmm.  I started debugging it, and tracked it as far as Vagrant::Environment#vms, which acts differently (for me) under 0.6.9.

This script:

require 'rubygems'
gem "vagrant", "0.6.8"
require 'vagrant'

env = Vagrant::Environment.new

env.vms.each do |id, vm|
  puts "#{id}: #{vm.created?}"
end

returns:

vm01: false
vm02: true

When I s/0.6.8/0.6.9/ I get a different result:

vm01: false
vm01: false
vm02: false
vm02: true

I'll try to debug more tonight, if I get a chance.  But after that, I'm on holiday for a couple of weeks, so you may not hear back from me until mid-Jan.

-- 
cheers, 
Mike Williams

Mike Williams

unread,
Dec 29, 2010, 3:30:09 AM12/29/10
to vagra...@googlegroups.com
More info.  It looks like the problem was introduced in commit e1ed00

diff --git a/lib/vagrant/environment.rb b/lib/vagrant/environment.rb
index 40824c4..f3fe5c6 100644
--- a/lib/vagrant/environment.rb
+++ b/lib/vagrant/environment.rb
@@ -352,7 +360,7 @@ module Vagrant

       # For any VMs which aren't created, create a blank VM instance for
       # them
-      all_keys = config.vm.defined_vms.keys
+      all_keys = config.vm.defined_vm_keys
       all_keys = [DEFAULT_VM] if all_keys.empty?
       all_keys.each do |name|
         result[name] = Vagrant::VM.new(:name => name, :env => self) if !result.has_key?(name)

"defined_vm_keys" returns strings, while "defined_vms.keys" returns symbols.  My ".vagrant" contains String keys in the "active" hash:

{"active":{"vm01":"dddf0320-5fbb-4d40-9a8d-227582729049","vm02":"d66e5764-5b3a-49d3-9e5c-39c44ed991ed"}}

I'd submit a patch, but (a) I'm not sure whether VM keys should be coerced to Symbols or Strings, and (b) I'm supposed to be packing :-)

-- 
cheers, 
Mike Williams

Reply all
Reply to author
Forward
0 new messages