web-dev-qa-db-ja.com

エクスポートされたSSHキーを生成するときに突然「評価できませんでした:フィールド 'キー'が必要です」エラー

突然パペット構成に何も変更せずに、エクスポートされたSSHキーを作成するときに、一部のホストが「評価できませんでした:フィールド 'キー'が必要です」というエラーで開始しましたが、興味深いことに、すべてのホストですべてのSSHキーが失敗するわけではありません。正常に作成された場合と失敗した場合の両方が作成されます。

Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for srvadx-green-7zhg.c.ligatus-prod-bidder-server.internal
Info: Applying configuration version '1511609586'
Notice: /Stage[main]/Basics::Ssh/Sshkey[srvadx-green-w5ld]/ensure: created
Info: Computing checksum on file /etc/ssh/ssh_known_hosts
Info: FileBucket got a duplicate file {md5}17787ff909a06cf0243c18cf33f1c384
Error: /Stage[main]/Basics::Ssh/Sshkey[srvadx-green-w5ld]: Could not evaluate: Field 'key' is required
Notice: /Stage[main]/Basics::Ssh/Sshkey[srvadx-green-88kp]/ensure: created
Error: /Stage[main]/Basics::Ssh/Sshkey[srvadx-green-88kp]: Could not evaluate: Field 'key' is required
Notice: /Stage[main]/Basics::Java/Exec[set-licence-selected]/returns: executed successfully
Notice: /Stage[main]/Basics::Java/Exec[set-licence-seen]/returns: executed successfully
Notice: Finished catalog run in 1.98 seconds

まず、破損したHSQLDBを疑って、puppetdbデータディレクトリ全体を削除し、すべてのホストでpuppetを再実行しました。最初は有望に見えましたが、すぐに上記のようなエラーが再び現れました。

問題をデバッグまたはさらに適切に修正する方法と、今後再発しないようにする方法はありますか?

1
Sebastian

最終的には、PuppetDBデータディレクトリを削除し、すべてのノードでpuppetを再実行することで機能しました。いくつかの破損したHSQLDBファイルが疑われます。

1
Sebastian

何が起こったかをデバッグ/理解するのを助けるために、あなたができる3つのことがあります(少なくとも):

  1. エージェントをデバッグモードで実行します:puppet agent -tv--debug。それはちょっとした消防ホースですが、そこにかもしれませんいくつかの手がかりがあります(それは少し長いショットです-問題はおそらくサーバーにあります
  2. Puppetmaster/serverログを確認します。問題のあるノードでエージェントを実行している間、それらを調整することをお勧めします。そうすれば、それらの実行の出力を確実に確認できます。そこに手がかりがある可能性は十分にあります(サーバーは、エージェントに表示されない、完全に正しくないものについて多くの警告を発します)
  3. HSQLDBデータベースにアクセスします。さまざまなsshキーに関連するテーブルのどこかにいくつかの行があるはずです。特に、機能しているものと機能していないものがある場合は、そこにある情報を確認してください(行を比較してください)。
1
Craig Miskell