我正在尝试使用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>
答案 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:}