我打算用chef-vault加密"users“数据库,并使用chef提供的"users”cookbook。由"users“cookbook提供的"users_manage”资源接受其中一个属性作为“数据库”(具有用户名、group_id和search_group属性)。据我所知,chef-vault允许您一次解密一个项目
vault = chef_vault_item(:mydatabbag, ‘item1’)理想情况下,我希望chef-vault提供类似的函数来解密整个存储库(加密的数据库),我可以将其传递给"uses_manage“资源:
decrypted_data_bag = chef_vault(:mydatabbag) #Something similar
users_manage "#{search_group}" do
group_id search_group
action [ :remove, :create ]
data_bag "#{decrypted_data_bag}"
end由于chef-vault不提供解密整个数据库的能力,我是否只剩下在循环中调用"users_manage“并传递每一项(作为散列)的唯一解决方案?
mydatabag.each do |myuser|
decrypted_user = vault = chef_vault_item(:mydatabbag, "#{myuser}")
users_manage "#{search_group}" do
group_id search_group
action [ :remove, :create ]
data_bag "#{decrypted_user}"
end
end有没有更好的解决方案?
发布于 2017-07-07 00:59:56
data_bag属性是数据包的名称,而不是数据包本身。您不能将users_manage与chef-vault一起使用,您必须自己编写类似的代码。
也就是说,user对象中的任何内容在一开始都不需要是私有的,除非您正在尝试设置密码或其他东西(不要这样做),因此这可能不是必需的。
https://stackoverflow.com/questions/44942265
复制相似问题