false の未定義の 'downcase' メソッド: Puppet エージェントの FalseClass

false の未定義の 'downcase' メソッド: Puppet エージェントの FalseClass

私は古代のDebian Lennyから戻る古い人形を持っています。最近定義されていないメソッド小文字について文句を言い始めた後に動作します。

これはDebian Lenny、Puppet 2.6.2です。

FacterをロードしてFacter_dot_dで終了します。

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

私が一つ見つけたfactors_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

私も削除しようとしましたfactors_dod_d.rbただし、Puppet エージェントを再実行すると、エージェントが再生成され、失敗します。

人形構成ファイルは次のとおりです。

[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

これにより、クライアントはサーバーから複数のプラグインをダウンロードします。このファイルを使用すると、長い間動作することができます。もしそうなら、プラグインの1つは、この以前のバージョンのエージェントと比較してあまりにも新しいようです。これは文句を言います。未定義の方法

削除プラグインの同期確認してファイルを削除してください/var/lib/puppet/lib/facterこの問題を解決しました。

覚えている:

  • /var/lib/puppet/lib/facterにあるファイルは、名前を変更したりサブディレクトリに移動したりするのではなく、削除する必要があります。

  • 少なくとも私のpuppetエージェントに必要な場合は、このファイルをアーカイブしてください:/var/lib/puppet/lib/facter/util/puppet_settings.rb

  • 削除するプラグインの同期オプションの範囲は次のとおりです。puppet.confクライアント側のファイル。

関連情報