I'm developing a Chef cookbook that I'm testing with Vagrant and chef-solo.  The recipes look at node.name to make certain decisions.  In order to test various variants of that I would like to override that attribute for test runs from Vagrant.  So I tried
Vagrant.configure("2") do |config|
  ...
  config.vm.provision :chef_solo do |chef|
    ...
    chef.json = {
      'name' => 'randomhostname',
    }
  end
end
but seems to have no effect.
I understand that the name attribute defaults to the hostname attribute, which is managed by ohai (see also this question), but is there a way to override the name attribute?
You should be able to use:
Vagrant.configure("2") do |config|
  ...
  config.vm.provision :chef_solo do |chef|
    ...
    chef.node_name = 'node_name'
    ...
  end
end
                        If name defaults to the hostname of the vm then could you just change the hostname?
config.vm.hostname = "new.host.name"
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With