我在living-elastic
食谱上有以下资源。
elasticsearch_configure 'elasticsearch' do
configuration ({
'http.port' => port,
'cluster.name' => cluster_name,
'node.name' => node_name,
})
end
我想在另一本食谱上修改它而不覆盖它:
edit_resource!(:elasticsearch_configure, 'elasticsearch') do
configuration ({
'path.repo' => ["/backups/s3_currently_dev", "/backups/s3_currently", "/backups/s3_daily", "/backups/s3_weekly", "/backups/s3_monthly"]
})
end
这会覆盖端口,cluster_name和node_name。我怎么能这样做?
答案 0 :(得分:2)
使用Ruby Hash#update
方法:
edit_resource!(:elasticsearch_configure, 'elasticsearch') do
configuration.update({
'path.repo' => ["/backups/s3_currently_dev", "/backups/s3_currently", "/backups/s3_daily", "/backups/s3_weekly", "/backups/s3_monthly"]
})
end
这是有效的,因为调用没有新值的属性会返回现有值,然后就可以像任何其他Ruby Hash一样进行变异。