迭代Puppet中的哈希键/值

时间:2014-07-10 23:14:42

标签: puppet

我正在尝试使用Puppet来更新ASP.NET web.config中的任意appsetting列表(用于部署目的)并且我处于两难境地,主要是因为我真的是n00b在傀儡。

我有这个yaml文件(hiera)

---
appSettings:
  setting1: "hello"
  setting2: "world!"
  setting3: "lalala"

setting[x]的数量可以任意划分(一个appSetting),我想循环遍历散列键/值来更新web.config中的相应appSetting/add(使用{{1} }使用powershell)问题是我在如何迭代上搜索得很高。

我遇到了exec,当然这会使用一组预先确定的密钥迭代哈希散列。再次,清单中的密钥名称是未知的(因此迭代键/值对)。

任何指导都表示赞赏。

编辑:看起来有一个create_resources函数我可以在哈希上使用并迭代,然后使用hiera_hash(&#39; appSettings&#39;)来获取哈希并迭代值。< / p>

1 个答案:

答案 0 :(得分:8)

好吧,我刚刚确认你可以在清单中做些什么:

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:}