我有以下代码:
include_recipe 'hashicorp-vault::default'
conn = Faraday.new(:url => 'http://127.0.0.1:8200')
res = conn.put do |req|
req.url '/v1/sys/init'
req.body = '{"secret_shares": 1, "secret_threshold": 1}'
end问题是主厨忽略include_recipe 'hashicorp-vault::default'并首先执行其他代码,因此它会崩溃,因为没有安装保险库。
首先,我如何强制执行hashicorp-vault::default?
发布于 2017-10-25 13:11:02
您需要将代码移动到聚合时间,以便库配方中定义的资源已经收敛,而不仅仅是定义了:
include_recipe 'hashicorp-vault::default'
ruby_block 'get secret' do
block do
conn = Faraday.new(:url => 'http://127.0.0.1:8200')
node.run_state['res'] = conn.put do |req|
req.url '/v1/sys/init'
req.body = '{"secret_shares": 1, "secret_threshold": 1}'
end
end
end在您想要获得此秘密的菜谱的其余部分(或其他后续菜谱)中,要使用node.run_state['rest'],这个特定的散列不会保存为节点对象的一部分,因此不会将秘密泄漏到主厨服务器中。
这种行为是由于厨师编译菜谱的方式,然后在其中汇集资源,您可以找到关于编码者的博客的更多细节。
https://stackoverflow.com/questions/46928809
复制相似问题