厨师 - 在cookbook之间共享库

Joh*_*adt 5 ruby chef-infra

是否可以重用另一个食谱提供者/库中的食谱库中的代码?

cookbook1 /库/ lib.rb

    ...
    def very_useful_check
      true
    end
    ...
Run Code Online (Sandbox Code Playgroud)

cookbook2 /库(提供者?)/ foo.rb

...
myvar = very_useful_check
...
Run Code Online (Sandbox Code Playgroud)

谢谢

sha*_*zhu 3

通过使用Chef Libraries可以实现这一点。

确保函数是通过 ruby​​ 模块在您的命名空间中定义的:

module Foo
  def very_useful_check
    true
  end
end

class Chef::Recipe::namespace
  include Foo
end
Run Code Online (Sandbox Code Playgroud)

然后你可以在任何食谱中使用它,例如:

myvar = Foo.very_useful_check
Run Code Online (Sandbox Code Playgroud)