require 'chef/encrypted_data_bag_item' require "fileutils" data = {"id" => "foo", "password" => "foobar"} secret = Chef::EncryptedDataBagItem.load_secret('data_bag_key') encrypted_data = Chef::EncryptedDataBagItem.encrypt_data_bag_item(data, secret) FileUtils.mkdir_p('data_bags/passwords') File.open('data_bags/passwords/mysql.json', 'w') do |f| f.print encrypted_data.to_json end
![Chef Solo + Knife Solo で暗号化データバッグを使う - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/bea4088cd8007528c804b765d24a098e48f631c6/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9Q2hlZiUyMFNvbG8lMjAlMkIlMjBLbmlmZSUyMFNvbG8lMjAlRTMlODElQTclRTYlOUElOTclRTUlOEYlQjclRTUlOEMlOTYlRTMlODMlODclRTMlODMlQkMlRTMlODIlQkYlRTMlODMlOTAlRTMlODMlODMlRTMlODIlQjAlRTMlODIlOTIlRTQlQkQlQkYlRTMlODElODYmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzFFMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPTVjMjZjZWI3MjVhYzYyOGE1ODQ4MTQ3NTIzZWIwNWFi%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBsYWJvY2hvJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz01NDlmYWNkMzdjNzFlZDQxMGRlZjRiM2RiYTk4YTRhMQ%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3D485014f3fc287c03713720c12ff7b7cd)