首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >厨师食谱订单执行

厨师食谱订单执行
EN

Stack Overflow用户
提问于 2017-10-25 09:30:55
回答 1查看 78关注 0票数 0

我有以下代码:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-25 13:11:02

您需要将代码移动到聚合时间,以便库配方中定义的资源已经收敛,而不仅仅是定义了:

代码语言:javascript
复制
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'],这个特定的散列不会保存为节点对象的一部分,因此不会将秘密泄漏到主厨服务器中。

这种行为是由于厨师编译菜谱的方式,然后在其中汇集资源,您可以找到关于编码者的博客的更多细节。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46928809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档