自定义人偶类型打破了用 "no such file to load -- json" 描述的人偶 (2.7)

Custom Puppet Type breaks puppet describe with "no such file to load -- json" (2.7)

我写了一些自定义的 Puppet 类型。只要它们都在同一个节点上使用,

puppet describe <my_custom_type>

工作正常,显示来自 CLI 的文档。

然后我又写了一个自定义类型,但是现在我得到了

# puppet describe <my_new_custom_type>
Could not run: Could not autoload /var/lib/puppet/lib/puppet/type/<my_older_custom_type>: Could not autoload /var/lib/puppet/lib/puppet/provider/<my_older_custom_type>/<custom_provider>.rb: no such file to load -- json

/var/lib/puppet/lib/puppet 下方一瞥显示 'missing' 文件在那里。当我删除 /var/lib/puppet/lib/puppet 下的旧自定义类型文件时,# puppet describe <my_new_custom_type> 工作正常。

有人可以建议一个廉价的解决方法吗?或者我忽略了什么?我现在必须使用 Puppet v 2.7.something(不是我个人的选择),它将在几个月内升级,所以如果这个问题在新版本中得到修复,我会保持原样.

当然,上述所有习俗 types/providers 都有效。该问题仅限于 puppet describe 功能。

不幸的是,必须为 所有 您的 Puppet 代理提供您的自定义类型之一所需的 Ruby gem。

代理总是将类型和提供程序同步到您的代理,因为在插件同步时,代理还无法判断目录是否需要某种类型。

如果您可以将功能委托给外部工具,Puppet 将能够辨别出该提供程序不适合大多数代理。