厨师模板以及如何在ruby中执行for循环

Tam*_*mpa 2 ruby chef-infra

我是红宝石和厨师的新手.我正在尝试根据核心数在nginx.conf文件中创建条目.

for i in <%= node["cpu"]["total"]%>
upstream frontends {
        server 127.0.0.1:805x;
    }

end
Run Code Online (Sandbox Code Playgroud)

所以..如果4个核心,文件将如下所示:

upstream frontends {
            server 127.0.0.1:8051;
            server 127.0.0.1:8052;
            server 127.0.0.1:8053;
            server 127.0.0.1:8054;
        }
Run Code Online (Sandbox Code Playgroud)

yfe*_*lum 14

食谱

template "/etc/nginx/sites-available/my-site.conf" do
  variables :frontends_count => node["cpu"]["total"]
end
Run Code Online (Sandbox Code Playgroud)

模板

upstream frontends {
<% @frontends_count.times do |i| %>
  server 127.0.0.1:805<%= i + 1 %>;
<% end %>
}
Run Code Online (Sandbox Code Playgroud)