如何迭代一个厨师elb模板

时间:2017-08-04 21:11:32

标签: ruby chef erb

我有一个厨师红宝石elb模板,我不是红宝石开发者:

我如何迭代以下?

for iter in node["cpu"]["total"].lentgh do
   server unix:/tmp/aiohttp_<%= iter %>.sock fail_timeout=0;
end

我想要每个cpu核心一行,例如1,2,3,4-

server unix:/tmp/aiohttp_0.sock fail_timeout=0;
server unix:/tmp/aiohttp_1.sock fail_timeout=0;
server unix:/tmp/aiohttp_2.sock fail_timeout=0;
server unix:/tmp/aiohttp_3.sock fail_timeout=0;

1 个答案:

答案 0 :(得分:1)

你使用<% %>标签来表示像Erb中的循环这样的结构内容,或者更常见的是使用<%- -%>来修剪空白行上的空格。for虽然Numeric#times循环是Ruby中的东西,但是非常不推荐它们,惯用的Ruby使用迭代器方法。对于&#34;做X次&#34;这将是total方法。此外,.length密钥只是一个数字,因此您无法使用<%- node["cpu"]["total"].times do |i| -%> server unix:/tmp/aiohttp_<%= i %>.sock fail_timeout=0; <%- end -%>

<img src='{{url_for('static', filename='img/question-mark.png')}}' alt='' >