I wrote this as a draft ages ago, and I haven't really quality-checked it. I'm publishing it as I have decided to make a more concerted effort not to filter myself on my blog, and publish my drafts.


Vagrant seems like a great idea - just checkout a project, type "vagrant up", and immediately you're good to go.

In practice, managing Vagrant environments requires a fairly significant learning curve.

Multiple technologies

First you should realised that Vagrant itself actually does very little of the leg-work. It brings together a number of technologies:

Therefore to be able to debug Vagrant environments it is very useful to know as much as possible about each of these.

VirtualBox issues

VT-x not available

When you try to start up the box, you may get the error:

VT-x/AMD-V hardware acceleration is not available on your system

or

VT-x/AMD-V hardware acceleration has been enabled, but is not operational.

To fix this you need to reboot into the BIOS settings and enable VT-x. Unfortunately as computer BIOSes vary immensely, I can't help you out with where to find the setting.

Chef server issues

Client node name exists

Client node name already exists (UPDATE THIS TO THE REAL ERROR MESSAGE)

This means you need to either change the name you're trying to use:

chef.node_name = "#{ENV['USER']}-new-key-26"

or delete existing key from the server (probably hosted at opscode).

401 Unauthorized

You may get this error when Chef is trying to install a new piece of software or something similar.

This is such a common error that Opscode have a dedicated page about it.

The simplest fix is probably, once again, to use a completely new client name:

chef.node_name = "#{ENV['USER']}-unique-key-27"