Перебирать ключ / значения хеша в 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:}
Другие вопросы по тегам