0

我正在尝试添加一个自定义厨师提供程序——Chef::Provider::Tarball基于Chef::Provider::Git.

由于某种原因,它不想工作。我补充说:

/usr/lib/ruby/vendor_ruby/chef/provider/tarball.rb

并且还添加了对Chef::Provider::Tarballin/usr/lib/ruby/vendor_ruby/chef/provider/deploy.rb和的引用/usr/lib/ruby/vendor_ruby/chef/providers.rb

require "chef/provider/tarball"

我收到的错误消息是FATAL: NameError: uninitialized constant Chef::Provider::Tarball

这是完整的堆栈:

https://gist.github.com/7aa71a2088c5ec36d011

有什么想法我可能会错过吗?

4

1 回答 1

0

您可能不想尝试制作这样的内置提供程序。处理它的正确方法是用LWRP制作一本食谱。根据包含 LWRP 的说明书,您仍然可以在其他说明书中使用 LWRP。如果您确定需要重量级提供程序而不是 LWRP,您可能希望将其构建到 Chef 代码本身(提供程序位于 lib/chef/provider/ 下),以便自动加载而不使用 require 行。

于 2012-06-27T23:44:28.677 回答