在生成导出的SSH密钥时,突然出现“无法评估:字段”键“是必需的”错误

没有突然改变任何puppetconfiguration,当创build导出的SSH密钥时,我们的某些主机以“Could not evaluate:Field”键为“必需”错误开始,但有趣的是并非所有主机上的所有SSH密钥都失败,这里的一个例子是密钥都成功和失败创build:

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。 首先它看起来很有希望,但很快上面的错误又重新出现了。

如何debugging甚至更好地解决问题,以及如何防止它在未来再次发生?

为了帮助debugging/理解发生的事情,有三件事情可以做(至less):

  1. 以debugging模式运行代理:puppet agent -tv –debug。 这是一个stream氓软件,但可能有一些线索在那里(这是一个远射一点 – 问题可能是在服务器上
  2. 查看木偶大师/服务器日志; 我build议在问题节点上运行代理时对它们进行拖尾处理,这样可以确保您看到这些运行的输出。 这是完全可能的,那里有一个线索(服务器发出很多关于事情的警告,这些警告不是非常正确的,在代理上是不可见的)
  3. 进入HSQLDB数据库; 在表中应该有一些与各种ssh密钥相关的行。 看看有什么信息,特别是有些工作,有些没有(比较行)。