在官方文档中,只有一个variable用于模板的用例:调用者必须传入散列.
但对我来说,我有一个非常简单的用例.我只想在sensu客户端配置模板文件中设置服务器名称client.json.erb
这是模板文件:
{
"client": {
"name": "<%= @server_name %>",
"address": "<%= node.ipaddress %>",
"keepalive": {
"thresholds": {
"warning": 90,
"critical": 180
}
},
"subscriptions": [ "default" ]
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的厨师代码:
server_name = "server1.example.com"
template "/etc/sensu/conf.d/client.json" do
variables({
:server_name => server_name
})
source "sensu-template/conf.d/client.json.erb"
end
Run Code Online (Sandbox Code Playgroud)
配置文件变成:
{
"client": {
"name": "{}",
"address": "10.0.1.1",
"keepalive": {
"thresholds": {
"warning": 90,
"critical": 180
}
},
"subscriptions": [ "default" ]
}
}
Run Code Online (Sandbox Code Playgroud)
我应该如何将变量名称正确传递到模板中?
这解决了我的问题:
template "/etc/sensu/conf.d/client.json" do
variables(
'server_name': server_name
)
source "sensu-template/conf.d/client.json.erb"
end
Run Code Online (Sandbox Code Playgroud)