Używam Puppet, aby zaktualizować dowolną listę appsettings w ASP.NET web.config (dla celów wdrażania) i jestem w dylemacie, głównie dlatego, że " m prawdziwy n00b w marionetce.Powtórzenie skrótu klawiszowego/wartości w Puppet
mam plik yaml (Hiera)
---
appSettings:
setting1: "hello"
setting2: "world!"
setting3: "lalala"
liczba setting[x]
może obejmować dowolnie (jeden AppSetting) i am pętli klucze mieszania/wartość do aktualizowania odpowiedniego appSetting/add
w sieci .config (użycie exec
z powershell) problem polega na tym, że przeszukano mnie na wysokim i niskim poziomie, jak iterować na klawiszy i wartości.
Natknąłem się na create_resources
i to oczywiście przechodzi przez skrót hasha z wcześniej ustalonym zbiorem kluczy. ponownie, nazwy kluczy nie są znane w manifeście (stąd iteracja par klucz/wartość).
wszelkie wskazówki są mile widziane.
Edycja: wygląda na to, że istnieje funkcja keys()
, którą mogę użyć na haśle i iterować, następnie użyć hiera_hash ('appSettings'), aby uzyskać skrót i iterować wartości.
Podejście brzmi nieco nadużyciem. Czy nie byłoby bardziej ekonomiczne zapisywanie par klucz/wartość do pliku na agencie i czy * pojedynczy * monolityczny skrypt PowerShell wykonuje całą edycję za jednym razem? –
@FelixFrank Przepraszam, nie rozumiem, dlaczego to "nadużycie". skrypt PowerShell zaktualizuje ustawienie jednej aplikacji web.config na raz. czy możesz opracować lepsze podejście? –
Idealnie można stworzyć [szablon] (http://docs.puppetlabs.com/guides/templating.html), który emituje pełną zawartość dla twojego pliku. Poza tym byłoby pożądane, aby zarządzać rzeczami tylko w dwóch zasobach - jednym pliku z parami klucz/wartość, jak w przypadku Hiera, i jednym 'exec' z nieco bardziej wydajnym skryptem, który wykonałby zadanie wszystkich twoich obecnych wykonawców i zastosował wszystkie pary klucz/wartość. Prawdopodobnie będziesz potrzebował dodatkowego skryptu, aby określić, czy jest praca do wykonania na pliku docelowym, aby utworzyć warunek 'onlyif'. - W zależności od tego, jak ważna jest wydajność, może to dziwić –