「ユーザー」データバッグをchef-vaultで暗号化し、シェフが提供する「users」クックブックで同じものを使用するつもりです。「users」クックブックによって提供される「users_manage」リソースは、属性の 1 つを「databag」として受け入れます (username、group_id、および search_group プロパティを使用)。私の知る限り、chef-vault を使用すると、一度に 1 つのアイテムを復号化できます
vault = chef_vault_item(:mydatabbag, ‘item1’)
理想的には、chef-vault が同様の機能を提供して、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
より良い解決策はありますか?