我有一个旧木偶在古老的 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文件在客户端。