“puppet agent -t”抛出错误:Facter:解析自定义事实时出错.../packages_of_interest.rb:未定义的局部变量或方法`package'

问题描述

问题:
这是运行 puppet agent -t

输出
Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Loading facts
Error: Facter: error while resolving custom facts in /opt/puppetlabs/puppet/cache/lib/facter/packages_of_interest.rb: undefined local variable or method `package' for main:Object
Did you mean?  packages
Info: Caching catalog for server.com
Info: Applying configuration version '1606329246'
Notice: Applied catalog in 1.40 seconds

解决方法

查看packages_of_interest.rb 中的子程序,将package 替换为“matching_package”即可消除该错误。

将包名称添加到错误消息显示哪个包。我改变了第 57 行

来自

      puts "unknown provider passed (#{package[:provider]})"

      puts "unknown provider passed (#{matching_package[:provider]}) for package (#{matching_package[:name]})"

代理会替换这个文件,所以一旦代理说它更新 package_of_interest.rb 就将修改后的文件复制到位

这是现在的错误信息:

“为包 (javapackages) 传递了未知的提供者 (pip2)”

即使系统上存在 pip2

这个 pip2 消息似乎是一个错误。幸运的是,代理完成时会发出警告而不是错误。