Chef infra 是否可以使用某个食谱中的自定义资源在您自己的食谱中创建自定义资源?
我有一本烹饪书,比如说我的烹饪书的名字是Chef infra 是否可以使用某个食谱中的自定义资源在您自己的食谱中创建自定义资源?,chef-infra,dependency-management,chef-custom-resource,Chef Infra,Dependency Management,Chef Custom Resource,我有一本烹饪书,比如说我的烹饪书的名字是check,我正试图通过在以下目录结构中创建一个自定义资源:check/resources/myresource.rb。在这个myresource.rb文件中,我需要使用另一本烹饪书line中的自定义资源。如何使用myresource.rb中linecookbook中的资源?如果您想在食谱中使用它,您可以完全按照相同的方式使用 取决于定义了其他自定义资源的cookbook: #metadata.rb 取决于“行”、“~>X.Y”#添加此行,将X和Y替换为l
check
,我正试图通过在以下目录结构中创建一个自定义资源:check/resources/myresource.rb
。在这个myresource.rb
文件中,我需要使用另一本烹饪书line
中的自定义资源。如何使用myresource.rb中line
cookbook中的资源?如果您想在食谱中使用它,您可以完全按照相同的方式使用
取决于定义了其他自定义资源的cookbook:
#metadata.rb
取决于“行”、“~>X.Y”#添加此行,将X和Y替换为line cookbook版本
使用自定义资源。您可以在配方或自定义资源中使用它,也可以在任何可以使用资源的地方使用它。(我使用了line\u resource
作为一个例子,根据line
cookbook中声明的文件,实名是不同的。)
#检查/resources/myresource.rb
动作:一些动作可以做
行资源[…]do
[...]
终止
终止
根据@Draco已经提到的内容,他描述的两个步骤是必需的步骤。除此之外,当您在配方中调用自定义资源时,还需要包含烹饪书
# check/resources/myresource.rb
resource_name :myresource
property :cookbook_inclusion, String
property :some_name, String, name_property: true
action :some_action do
include_recipe new_resource.cookbook_inclusion
line_resource [...] do
[...]
end
end
然后,当你在食谱中提到它时,你可以提到你想要包含的食谱的名称
# check/recipes/default.rb
myresource 'include' do
cookbook_inclusion 'line'
end
这样,在融合时,所有资源都将可用于运营 非常感谢你的回答。我尝试了这个方法,它在资源行中给了我一个未定义的方法错误。我使用了[link]()中line cookbook中的实际replace\u或\u add
资源,我使用了line\u replace\u或\u add[…]do
,它给出了未定义的方法错误。请对此发表意见?正如您在第10行看到的,实际的资源名称是replace\u或\u add
。当我使用replace\u或\u add[…]do
时,我仍然会得到未定义的方法错误。