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