【发布时间】:2015-05-04 14:25:55
【问题描述】:
我有一个配方,它在 ruby_block 中设置了一个变量,并且需要将该变量用作配方的输入属性。 ruby_block 执行后如何使用 include_recipe?
谢谢
ruby_block "evaluate_config" do #~FC014
block do
file = File.read('/opt/config/baselogging.json')
data = JSON.parse(file)
node.default['kibana']['apache']['basic_auth_username'] = data['KibanaUser']
node.default['kibana']['apache']['basic_auth_password'] = data['KibanaPassword']
include_recipe 'kibana'
end
end
【问题讨论】:
-
请看加密数据包,里面有加密密码。
ruby_block是在资源收集之后执行的代码的一部分,因此只需将include_recipe放在此块之外作为下一步。 -
这行不通。 include_recipe 将在编译阶段被实例化,并且将使用默认的 basic_auth_username 和 basic_auth_password 值。在收敛阶段,将执行 ruby_block 并设置值,但不会影响 Included_recipe。
-
按原样运行代码会发生什么?它会抛出错误吗?您可能需要将 Chef 配方代码包含到您的 ruby 块中。
-
@JoseOlcese 你能接受我的回答吗?