编写我的第一个流浪厨师独奏食谱时,我想到了一些简单的事情,比如更改主机名。在流浪文件中,我有这个;
config.vm.provision :chef_solo do |chef|
chef.cookbooks_path = "../../chef/cookbooks"
chef.roles_path = "../../chef/roles"
chef.data_bags_path = "../../chef/data_bags"
chef.json = { :hostname => "foofoo" }
chef.add_recipe "myrecipe"
在 myrecipes/recipes/default.rb 中;
myvar = node[:hostname]
template "/tmp/myfile" do
source "myfile.erb"
owner "root"
group "root"
mode 0644
variables(
:myvar => myvar
)
end
在 myrecipe/templates/default/myfile.erb 中;
<%= @myvar %>
这实际上是行不通的。/tmp/myfile 一直以 /etc/hostname 中的真实主机名结尾。敲了半天头后,我发现了这些变化;
在流浪文件中;
chef.json = { :myhostname => "foofoo" }
在配方文件中;
myvar = node[:myhostname]
所以,似乎 ':hostname' 在某种程度上是特殊的,但尽我所能,我找不到任何解释原因或如何覆盖它的文档,或者可能有哪些其他“特殊”值可用。
大多数文档似乎都假设我还没有达到某种程度的能力。所以,我可能已经看到了答案,但没有认出来。谁能指出我可以解释这一点的“绝对初学者”文档?