2013-05-16 68 views
4

我正在開發一個廚師食譜,我正在與流浪和廚師獨奏進行測試。食譜看node.name做出某些決定。爲了測試各種變體,我想重寫Vagrant的測試運行屬性。所以我試了如何覆蓋流浪漢中的廚師節點名稱?

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

但似乎沒有效果。

我明白name屬性默認爲hostname屬性,這是由ohai管理(見this question),但有沒有辦法覆蓋name屬性?

回答

5

您應該能夠使用:

Vagrant.configure("2") do |config| 
    ... 
    config.vm.provision :chef_solo do |chef| 
    ... 
    chef.node_name = 'node_name' 
    ... 
    end 
end 
+0

這就是我正在尋找的。顯然沒有記錄。 –

+0

是的。我發現這是因爲['Vagrant :: Butcher'](http://github.com/cassianoleal/vagrant-butcher)的用戶提交了一個錯誤。 :) – cassianoleal

+0

正在修復文檔:https://github.com/mitchellh/vagrant/issues/1780 –

1

沒有,沒有辦法 - 這是所謂的自動屬性,因此總是最高優先級並覆蓋您指定的所有內容。你有可能使用不同的屬性,或者你會說服哪個菜譜說節點的名稱與廚師認爲的不同?

3

如果名稱默認爲vm的主機名,那麼您是否可以更改主機名?

config.vm.hostname = "new.host.name" 
+0

這工作,謝謝。 –