Puppet 和模板:如何按顺序循环而不是随机循环

Puppet 和模板:如何按顺序循环而不是随机循环

查看我的节点的配置:

 $property_name = {
     "unit_1"  => { host => [ "dns_name1/192.168.0.1/25" ,"dns_name2/192.168.0.2/25" ] 
                  },
     "unit_2"  => { host => [ "dns_name3/192.168.0.3/25", "dns_name4/192.168.0.4/25" ] 
                  },
 }
 include class::property

在模板中,我使用了一些循环

"<% property_name.each do |key,value| -%>", 
"<%= value['host'][id_host].split("/")[0] %>", 
 <%= value['host'][id_host].split("/")[1] %>,

... 编写配置文件。

但是,当我有很多“单元”(unit_3,unit_4等)时,每次 Puppet 的守护进程运行时模板的内容都会发生变化。

它没有任何影响,因为配置文件是正确的,但我想知道模板的循环是否可以按此顺序生成配置文件:unit_1,然后unit_2,然后unit_3,...而无需随机获取某些单元。

我使用了本教程:http://www.krzywanski.net/archives/703

答案1

您应该能够使用 Ruby 对值进行内联排序以提供一致的结果:

"<% property_name.sort_by {|key, value| key}.each do |key, value| -%>"

相关内容