我不清楚厨师如何以可靠和可预见的方式最好地管理秘诀。厨师管理秘密
我试过的是把所有的秘密逻辑放在一个单独的食谱,然后取决于所有的食谱,它是管理的秘密。
这样 - 我想 - 秘密可以在一个地方以一致的方式处理。另一个好处是我不必改变现有的食谱。
这个秘密食谱是从加密的数据包中提取秘密并使用它来设置密码/秘密属性。为了防止秘密上传到Chef服务器,我将所有不想上传的属性列入黑名单。
对于一些食谱,这会产生所需的效果,但对于其他食谱,结果变得非常难以预测。我现在确信,这不是解决问题的方法。推荐的方法是什么?我不想改变现有的食谱。
因此,举例来说,如果有菜谱的东西,如
execute 'change first install root password' do
# Add sensitive true when foodcritiC#233 fixed
command '/usr/bin/mysqladmin -u root password \'' + \
node['mariadb']['server_root_password'] + '\''
action :nothing
not_if { node['mariadb']['server_root_password_2'].empty? }
end
什么是打开属性['mariadb']['server_root_password']
在秘密和检索它从加密的数据包价值的最佳方式是什么?我不想更改食谱,也不想将密码上传到服务器。
更新
我觉得问题在blacklist_node_attrs
错误的结果,导致列入黑名单的属性是厨师运行期间不可用。
但是,整体属性方法与秘密相结合在厨师看来很大程度上还未开发。这太神奇了。
目前的状态是,如果你想管理的秘密,你将不得不改变现有的食谱。如果您尝试使用属性文件和配方文件中的食谱属性,则会发现结果是随机的。在某些情况下,它会起作用,而在其他情况下则不会。
这是我认为https://coderanger.net/chef-secrets/的帖子。这是对我的问题的彻底回答。 – onknows
同时查看链接的链接,这些链接更多地更新了几年,并且更深入地讨论了这些选项。我还有一篇关于将hashicorp vault与厨师合用的更近期文章,但现在它只是一个提议。敬请关注? – coderanger