我正在尝试为一系列Registry_keys构建一个Chef配方。它们都在chef属性default.rb中托管。我正在尝试调用已定义的属性并且每个键都调用create_if_missing
。
代码示例如下。
Chef attribute\default.rb
default['randomhost']['registry']['entries'] = [
{
'Key' => 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\RandomApplication',
'Values' => [
{
name: 'RandomValueName',
type: :qword,
data: 1
}, {
name: 'RandomValueName2',
type: :qword,
data: 2
}
]
}
]
Chef Recipe\registryKey.rb
node['randomhost']['registry']['entries'].each do |item|
registry_key item['Key'] do
values item['Values']
recursive true
action :create_if_missing # Default
end
end
当我开始构建时,请调用item['Values']
声明
Bad key name in RegistryKey values hash
我不完全确定为什么这是name:
,type:
和data:
都是属性数组中的符号。
任何帮助将不胜感激。 谢谢,
答案 0 :(得分:0)
我遇到的问题是嵌套数组正在将符号转换为字符串。我不得不使用.map
方法在我的配方中重建数组。
Chef Recipe\registryKey.rb
node['randomhost']['registry']['entries'].each do |item|
my_array = item['Values'].map { |key|
{
name: key['name'],
type: key['type'],
data: key['data']
}
}
registry_key item['Key'] do
values my_array
recursive true
action :create_if_missing # Default
end
end