false 的未定义方法“downcase”:傀儡代理的 FalseClass

false 的未定义方法“downcase”:傀儡代理的 FalseClass

我有一个旧木偶在古老的 Debian Lenny 中运行。自从最近开始抱怨未定义的方法小写以来,它就起作用了。

这是 Debian Lenny,傀儡 2.6.2。

它加载facter,并以facter_dot_d结束

Could not retrieve local facts: undefined method `downcase' for
false:FalseClass

我找到了一个因素_dod_d.rb文件位于 /var/lib/puppet/lib/facter 但我看到那里没有小写。

我还尝试下载新的木偶代理,但没有成功。 wheezy 版本不会安装在 lenny 中。我自己找不到源码包来编译。

我确实在 github 上找到了一个因素来源https://github.com/puppetlabs/facter/tree/1.6.x。我尝试下载,但不知道如何安装。运行失败

./bin/facter:69:in `require': no such file to load --
facter/application (LoadError)  from ./bin/facter:69

我也尝试删除因素_dod_d.rb,但是再次运行木偶代理会重新创建它并失败。

这是傀儡配置文件:

[main]
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
templatedir=$confdir/templates
server=server.domain.foo.bar
environment=legacy

答案1

我终于知道发生了什么事。前段时间客户端的配置文件中还有这样一行:

pluginsync = true

这使得客户端从服务器下载了一堆插件。有了这些文件,它可以工作很长时间。然后,我猜想,其中一个插件对于这个旧版本的代理来说太新了。这让它抱怨未定义的方法

删除插件同步行,并且删除文件/var/lib/puppet/lib/facter解决了这个问题。

记住:

  • 必须删除 /var/lib/puppet/lib/facter 中的文件,而不仅仅是重命名或移动到子目录。

  • 保留此文件,至少我的木偶代理需要它:/var/lib/puppet/lib/facter/util/puppet_settings.rb

  • 去除插件同步选项从傀儡.conf文件在客户端。

相关内容