如何在vagrant中覆盖Chef节点名称?

Pet*_*aut 4 chef-infra vagrant chef-solo

我正在开发一个厨师食谱,我正在用Vagrant和厨师独奏进行测试.食谱看待node.name做出某些决定.为了测试它的各种变体,我想覆盖来自Vagrant的测试运行的该属性.所以我试过了

Vagrant.configure("2") do |config|
  ...
  config.vm.provision :chef_solo do |chef|
    ...
    chef.json = {
      'name' => 'randomhostname',
    }
  end
end
Run Code Online (Sandbox Code Playgroud)

但似乎没有效果.

我理解该name属性默认为hostname属性,由ohai管理(另请参阅此问题),但有没有办法覆盖name属性?

cas*_*eal 5

你应该可以使用:

Vagrant.configure("2") do |config|
  ...
  config.vm.provision :chef_solo do |chef|
    ...
    chef.node_name = 'node_name'
    ...
  end
end
Run Code Online (Sandbox Code Playgroud)