![Puppet 错误:未定义方法‘捕获’](https://linux22.com/image/612223/Puppet%20%E9%94%99%E8%AF%AF%EF%BC%9A%E6%9C%AA%E5%AE%9A%E4%B9%89%E6%96%B9%E6%B3%95%E2%80%98%E6%8D%95%E8%8E%B7%E2%80%99.png)
我把这个问题发布在了 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/
。
然后,您将需要找出导致问题的原因并修复它(但也许到了这一步我们可以提供帮助)。