📅  最后修改于: 2020-11-02 03:24:27             🧑  作者: Mango
在基础架构中,配置管理是关于如何配置主机的全部内容。通常,所有配置都是使用配置文件完成的。 Chef使用模板能够用动态值填充配置文件。
Chef提供模板作为可在配方中使用的资源。配置文件的动态值可以从数据包,属性中检索,甚至可以通过将其传递到模板中进行计算。
步骤1-将模板添加到配方。
vipin@laptop:~/chef-repo $ subl cookbooks//recipes/default.rb
template '/tmp/message' do
source 'Test.erb'
variables(
hi: 'Tesing',
world: 'Welt',
from: node['fqdn']
)
end
步骤2-添加ERB模板文件。
vipin@laptop:~/chef-repo $ subl cookbooks//templates/default/test.erb
, from !
步骤3-将修改后的食谱上传到Chef服务器。
vipin@laptop:~/chef-repo $ knife cookbook upload
Uploading my_cookbook [0.1.0]
Run Chef Client on your node:
user@server:~$ sudo chef-client
...TRUNCATED OUTPUT...
[2017-01-14T20:41:21+00:00] INFO: Processing template[/tmp/
message] action create (my_cookbook::default line 9)
[2017-01-14T20:41:22+00:00] INFO: template[/tmp/message] updated
content
步骤4-验证上传文件的内容。
user@server:~$ sudo cat /tmp/message
Hallo, Welt from vagrant.vm!
Hallo, Welt from vagrant.vm!
Hallo, Welt from vagrant.vm!
Hallo, Welt from vagrant.vm!
Chef使用Erubis作为其模板语言。它允许将纯Ruby代码嵌入模板中的特殊符号中。
如果要将变量或Ruby表达式的值打印到生成的文件中,请使用<%=%>。
如果要将Ruby逻辑嵌入到模板文件中,请使用<%-%>。我们使用它来循环表达四次。