如何共享自定义资源 属性 值

How to Share Custom Resource Property Values

我刚开始按照 Chef 12.5 中引入的 new pattern 编写自定义资源。

我想在资源之间共享 属性 值。例如,可能有一个安装应用程序的资源,然后是另一个用于向该应用程序添加功能的资源,并且取决于安装位置。

app 'myApp' do
    install_path '/usr/local'
    action       :install
end

app_feature 'newFeature' do
    app     'myApp'
    action  :install
end

app_feature 资源依赖于 app 资源的 install_path。如何在 app_feature 代码中引用 install_path

我在 Poise Python cookbook 中看到过类似的操作,但作为资源开发的新手,我无法将其转化为我的场景。

这是 Poise 的一项功能,称为 "subresources",其中两个资源(容器和 child)之间存在 parent/child 关系。 child 可以通过访问器方法访问 parent 的数据。不幸的是,像大多数 Poise 一样,我实际上并没有很好地记录这些内容:-(

您可能想查看应用程序说明书,因为它有一个相对容易地实现此类内容的框架。