Ich bin mit Puppet plant eine beliebige Liste von Appsettings in einer ASP.NET web.config zu aktualisieren (für die Bereitstellung) und ich bin in einem Dilemma, vor allem, weil ich ' m eine echte n00b in Puppe.Iterieren über einen Hash-Schlüssel/Werte in Puppet
Ich habe diese yaml Datei (hiera)
---
appSettings:
setting1: "hello"
setting2: "world!"
setting3: "lalala"
die Anzahl von setting[x]
beliebig Spanne (ein appSetting) und ich möchte durch die Hash-Schlüssel/Wert-Schleife der entsprechenden appSetting/add
in dem Netz zu aktualisieren, .config (mit exec
mit Powershell) das Problem ist, ich habe hoch und niedrig auf, wie auf Schlüssel und Werte iterieren.
Ich stolperte create_resources
und dies natürlich durchläuft einen Hash von Hash mit einer vorgegebenen Menge von Schlüsseln. Wiederum sind die Schlüsselnamen innerhalb des Manifests nicht bekannt (daher werden die Schlüssel/Wert-Paare wiederholt).
jede Anleitung wird geschätzt.
Edit: sieht aus wie es ist eine keys()
Funktion, die ich über den Hash verwenden und über iterieren kann, dann verwenden Sie hiera_hash ('appSettings'), um den Hash zu erhalten und durchlaufen die Werte.
Der Ansatz etwas beleidigend klingt. Wäre es nicht wirtschaftlicher, die Schlüssel/Wert-Paare in eine Datei auf dem Agenten zu schreiben und ein * einziges * monolithisches PowerShell-Skript die gesamte Bearbeitung auf einmal zu erledigen? –
@FelixFrank sorry, ich verstehe nicht recht, warum es "missbräuchlich" ist. Das PowerShell-Skript aktualisiert die Einstellung "web.config" jeweils für eine App. Können Sie näher erläutern, was ein besserer Ansatz wäre? –
Idealerweise könnten Sie eine [Vorlage] (http://docs.puppetlabs.com/guides/templating.html) erstellen, die den gesamten Inhalt für Ihre Datei ausgibt. Abgesehen davon wäre es wünschenswert, Dinge in nur zwei Ressourcen zu verwalten - eine Datei mit den Schlüssel/Wert-Paaren, wie in Hiera gefunden, und eine "exec" mit einem etwas mächtigeren Skript, um die Arbeit all Ihrer derzeitigen Führungskräfte zu übernehmen und anzuwenden alle Schlüssel/Wert-Paare. Sie benötigen wahrscheinlich ein zusätzliches Skript, um zu bestimmen, ob die Zieldatei bearbeitet werden muss, um Ihre einzige Bedingung zu erfüllen. - Je nachdem, wie wichtig die Leistung ist, kann dies nitpicking sein –