Перебирать ключ / значения хеша в Puppet
Я работаю с Puppet, чтобы обновить произвольный список настроек приложений в ASP.NET web.config (для целей развертывания), и у меня возникла дилемма, в основном потому, что я настоящий n00b в Puppet.
У меня есть этот файл yaml (hiera)
---
appSettings:
setting1: "hello"
setting2: "world!"
setting3: "lalala"
номер setting[x]
может охватывать произвольно (один appSetting), и я хотел бы перебрать хэш-ключи / значение, чтобы обновить соответствующие appSetting/add
в web.config (используя exec
с PowerShell) проблема в том, что я искал высоко и низко, как перебирать ключи и значения.
Я наткнулся create_resources
и это, конечно, перебирает хеш с заранее определенным набором ключей. опять же, имена ключей не известны в манифесте (следовательно, итерация пар ключ / значение).
Любое руководство приветствуется.
Редактировать: похоже, что есть keys()
функцию, которую я могу использовать над хешем и итерировать по ней, затем использовать hiera_hash('appSettings'), чтобы получить хеш и перебрать значения.
1 ответ
Хорошо, я только что подтвердил, что вы можете сделать в своем манифесте:
define updateAppSetting {
# get the hashes again because outside vars aren't visible here
$appSettings = hiera_hash('appSettings')
# $name is the key $appsettingValue is the value
$appsettingValue = $appSettings[$name]
# update the web.config here!
}
$appSettings = hiera_hash('appSettings')
# the keys() function returns the array of hash keys
$appSettingKeys = keys($appSettings)
# iterate through each appSetting key
updateAppSetting{$appSettingKeys:}