Ich habe eine Ruby-Vorlage (.erb), die ich über einen Hash zu iterieren. Es sollte die gleiche Ausgabedatei jedes Mal erzeugen, wenn der Puppenagent läuft.Schleife über Hash in definierter Reihenfolge in Ruby-Vorlage
Was ich derzeit habe, ist das Folgende. Dies ist meine Vorlage (Teil rsyslog Config, wenn jemand fragt):
<% log_files.each do |log_file, tag| -%>
# <%= log_file %>
$InputFileName <%= log_file %>
$InputFileTag <%= tag %>:
Diese Vorlage wird mit einem Hash gemacht, die wie folgt aussieht:
log_files => {
'/root/apache_auth.local' => 'httpd',
'/root/install.log' => 'hugo',
},
(Nicht wirklich Logfiles). Dies funktioniert und erzeugt die gewünschte Konfigurationsdatei. Das Problem dabei ist, dass jedes Mal, wenn ich den Puppet-Agenten anrufe, die Reihenfolge der Log-Dateien im Hash geändert wird, so dass die Konfigurationsdatei neu geschrieben wird und der Daemon anschließend neu gestartet wird. Die Funktionalität bleibt gleich, aber ich möchte die Config-Datei nicht neu schreiben und rsyslog jedes Mal neu starten, wenn der Puppet-Agent läuft.
Nun gehe ich davon aus, dass dies mit Hashes nicht lösbar ist, da sie keine definierte Reihenfolge haben. Welche anderen Möglichkeiten habe ich, um zu erreichen, was ich will?
Es ist eine Puppenvorlage (.erb). – Isaac