如何在 chef elb 模板中迭代
How to iterate in a chef elb template
我有一个厨师 ruby elb 模板,我不是 ruby 开发者:
我如何遍历下面的内容?
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;
您将 <% %>
标记用于 Erb 中的循环之类的结构性内容,或者更常见的是 <%- -%>
,它还会修剪空白行上的空格。虽然 for
循环是 Ruby 中的一个东西,但非常不推荐使用它们,惯用的 Ruby 使用迭代器方法代替。对于 "do it X times" 那将是 Numeric#times
方法。另外 total
键只是一个数字,所以你不能像那样使用 .length
。
<%- node["cpu"]["total"].times do |i| -%>
server unix:/tmp/aiohttp_<%= i %>.sock fail_timeout=0;
<%- end -%>
你
我有一个厨师 ruby elb 模板,我不是 ruby 开发者:
我如何遍历下面的内容?
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;
您将 <% %>
标记用于 Erb 中的循环之类的结构性内容,或者更常见的是 <%- -%>
,它还会修剪空白行上的空格。虽然 for
循环是 Ruby 中的一个东西,但非常不推荐使用它们,惯用的 Ruby 使用迭代器方法代替。对于 "do it X times" 那将是 Numeric#times
方法。另外 total
键只是一个数字,所以你不能像那样使用 .length
。
<%- node["cpu"]["total"].times do |i| -%>
server unix:/tmp/aiohttp_<%= i %>.sock fail_timeout=0;
<%- end -%>
你