我写了一些自定义的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
下的一瞥显示“缺失”文件存在。当我删除/var/lib/puppet/lib/puppet
下的旧自定义类型文件时,# puppet describe <my_new_custom_type>
工作正常。
有人可以建议廉价的解决方法吗?或者我忽略了什么?我现在必须使用Puppet v 2.7.something(不是我个人的选择),它将在几个月内升级,所以如果在新版本中修复它,我会保持原样。
当然,所有上述自定义类型/提供商都在工作。 isuue仅限于puppet describe
功能。
答案 0 :(得分:1)
不幸的是,必须为所有你的Puppet代理提供一种自定义类型所需的Ruby gem。
代理程序总是将类型和提供程序同步到代理程序,因为在插件同步时,代理程序还无法判断目录是否需要类型。
如果您可以将功能委托给外部工具,Puppet将能够辨别出提供商并不适合大多数代理。