Marionette und Vorlagen: wie man sequentiell und nicht zufällig schleift

7

Siehe die Konfiguration meines Knotens:

 $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

In der Vorlage habe ich eine Schleife mit verwendet

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

... um Konfigurationsdateien zu schreiben.

Wenn ich jedoch viele "Einheiten" habe (unit_3, unit_4 usw.), ändert sich der Inhalt der Vorlage jedes Mal, wenn der Daemon von Puppet ausgeführt wird.

Es hatte keine Auswirkungen, da die Konfigurationsdatei korrekt ist, aber ich würde gerne wissen, ob die Schleife der Vorlage Konfigurationsdateien in dieser Reihenfolge generieren könnte: unit_1, dann unit_2, dann unit_3, ... ohne zufällig eine Einheit zu nehmen.

Ich habe dieses Tutorial verwendet: http://www.krzywanski.net/archives/703

Richi16
quelle

Antworten:

9

Sie sollten Ruby verwenden können, um die Werte inline zu sortieren und konsistente Ergebnisse zu erzielen:

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