Hit*_*tch 5 ruby templates erb puppet
我正在使用puppet为ruby程序提供一组常量.我需要提供一个我的程序将迭代的主机名数组.
在我之前使用的bash脚本中,我只是作为一个木偶变量
hosts => "host1,host2"
Run Code Online (Sandbox Code Playgroud)
我提供给bash脚本的
HOSTS=<%= hosts %>
Run Code Online (Sandbox Code Playgroud)
显然这对红宝石不太有用 - 我需要它的格式
hosts = ["host1","host2"]
Run Code Online (Sandbox Code Playgroud)
以来
p hosts
Run Code Online (Sandbox Code Playgroud)
和
puts my_array.inspect
Run Code Online (Sandbox Code Playgroud)
提供输出
["host1","host2"]
Run Code Online (Sandbox Code Playgroud)
我希望使用其中一个.不幸的是,我不能为我的生活弄清楚如何使这项工作.我尝试了以下各项:
<% p hosts %>
<% puts hosts.inspect %>
Run Code Online (Sandbox Code Playgroud)
我找到了他们表示我需要在函数调用前放置"function_"的地方......这似乎不起作用.我已经确定了一个迭代模型:
[<% hosts.each do |host| -%>"<%=host%>",<% end -%>]
Run Code Online (Sandbox Code Playgroud)
这是有效的,给我
["host1","host2",]
Run Code Online (Sandbox Code Playgroud)
但尾随的逗号感觉很草率.整件事感到草率.有没有人有更好的方法?或者我是最好的选择?
我已经通过以下方式解决了(Puppet v3.0.1):
{
"your_key1": {
"your_key2": [<% puppet_var.join('", "').each do |val| %>"<%= val %>"<% end -%>]
}
}
Run Code Online (Sandbox Code Playgroud)
如果$ puppet_var是一个[[a],“ b”]的数组,则输出应类似于:
{
"your_key1": {
"your_key2": ["a", "b"]
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6839 次 |
| 最近记录: |