Назад | Перейти на главную страницу

внезапные ошибки «Не удалось оценить: поле 'ключ' требуется» при генерации экспортированных ключей 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 на всех хостах. Сначала это выглядело многообещающе, но вскоре ошибки, указанные выше, снова появились.

Как отладить или даже лучше решить проблему и как предотвратить ее повторение в будущем?

В конце концов, это сработало, удалив каталог данных PuppetDB и повторно запустив puppet на всех узлах. Я подозреваю, что какие-то поврежденные файлы HSQLDB.

Чтобы помочь отладить / понять, что произошло, вы можете сделать (как минимум) три вещи:

  1. Запустите агент в режиме отладки: puppet agent -tv --debug. Это немного похоже на пожарный шланг, но там мощь есть какие-то подсказки (это немного далеко - проблема, вероятно, на сервере
  2. Просмотрите журналы puppetmaster / server; Я рекомендую отслеживать их, пока вы запускаете агент на проблемных узлах, чтобы вы могли быть уверены, что видите результат этих запусков. Вполне возможно, что там есть подсказка (сервер выдает множество предупреждений о вещах, которые не совсем правильные, которые не видны агентам)
  3. Погрузитесь в базу данных HSQLDB; в таблице должно быть несколько строк, связанных с различными ключами ssh. Посмотрите, какая информация есть, особенно если некоторые из них работают, а некоторые нет (сравните строки).