Puppet 错误:未定义方法‘捕获’

Puppet 错误:未定义方法‘捕获’

我把这个问题发布在了 networkengineering SE 网站上,但它被确定为偏离主题......等等。

我正在考虑使用 puppet 进行核心网络设备配置,以提高我团队生成的配置的准确性。我想先设置一个演示,然后进一步了解 puppet 的一般工作原理。

我在我们的团队网络实用程序节点(Ubuntu 12.04 LTS VM)上安装了 puppet,并在我的 ~user/.puppet/device.conf 中配置了一个设备,看起来像......

[XX-core01.XXX.本地]
        类型 cisco
        url ssh://用户:[电子邮件保护]/

我运行了 puppet device --verbose,并颁发了证书。但是我执行完后收到一个错误,我找不到任何相关信息。

信息:开始将配置应用于 ssh://user: 处的 XX-core01.XXX.local[电子邮件保护]/
信息:为 XX-core01.XXX.local 创建新的 SSL 密钥
信息:缓存 CA 证书
信息:为 XX-core01.XXX.local 创建新的 SSL 证书请求
信息:证书请求指纹(md5):18:B8:55:F9:A0:F6:8E:A3:F5:53:59:87:4C:00:48:23
信息:XX-core01.XXX.local 的缓存证书
信息:缓存 CA 的 certificate_revocation_list
错误:无法检索本地事实:未定义方法“捕获”为 nil:NilClass

有人能给我指明正确的方向吗?另外,是否可以使用 puppet 来“操控”设备?我有兴趣看看在我的不同设备上有哪些选项可以配置。

谢谢!

答案1

看起来facter在向 报告事实时失败了puppet。可能发生的情况是,事实插件无法检索对象,但仍可处理结果(即nil)并尝试调用该captures方法。

尝试运行facter --trace --debug --puppet(运行启用了 puppet 插件的 facter)并查看是否也失败。

如果它确实通过一个简单的调用来缩小范围,那么facter --trace --debug如果它是一个基本因素插件,则会失败,但如果它是一个傀儡插件,那么就可以工作。

之后您就知道该去哪里找了。与木偶相关的 facter 内容可能在,/var/lib/puppet/lib/facter/而核心内容在/usr/share/ruby/vendor_ruby/facter/。确保您也查看了/etc/facts.d/~/facts.d/

然后,您将需要找出导致问题的原因并修复它(但也许到了这一步我们可以提供帮助)。

相关内容