【发布时间】:2014-07-13 11:01:20
【问题描述】:
我有 2 个属于同一食谱的食谱。
第一个配方解压/opt/tomcat/apache-tomcat-xxx中的apache-tomcat-xxx.tar.gz文件
在我做的第一个食谱中
tomcat_folder = ls /opt/tomcat
node.default['tomcat']['home'] = "/opt/tomcat/#{tomcat_folder}"
所以这个属性是在执行该配方的过程中创建的。
我的第二个配方需要在资源中使用该属性值,例如:
template node.default['tomcat']['home'] ...
directory node.default['tomcat']['home'] ...
和
ruby_block
block do
node.default['tomcat']['home'] ....
但我收到错误,因为该属性在执行时不存在。
在其他一些资源中,我可以使用 lazy{…} 块使其工作,但在这些资源中,我不知道如何使它们工作。
所以我的问题是,我应该如何设置配方 1 中的该属性,以便在执行配方 2 时能够使用它?
【问题讨论】:
标签: attributes chef-infra chef-recipe