我们在启用了自动启动的debian客户端上使用木偶版本2.7.11(在/etc/default/puppet START=yes )。 我们使用带有FQDN( dummyclient.work-network.pri )的证书连接到puppetmaster,它工作正常。 例如,已更改的/etc/default/puppet文件已发送给我们的客户端。
问题是:在重新启动后,我们看到dummyclient发出了一个新的证书请求,我们的木偶大师认为这是一个完全不同的机器。 其中一个原因似乎是我们使用DHCP作为我们的客户名称和IP地址,并且当puppet-agent启动时networking可能还没有完全存在。 (在我们的系统日志中,在NetworkManager提供有关域名服务器和域名的信息之前启动puppet-agent 。)作为进一步certificate, hostname -f在启动期间也是空的(而hostname -s给出正确的答案)。
显然,无论系统运行多久,运行的木偶进程都不会更新这个信息。 (手动启动的木偶使用FQDN。)
是否有可能延迟傀儡开始的时间,或者在networking信息发生变化时触发傀儡重新启动。 (例如,当客户端完全没有networking连接时启动。)
或者,最佳解决scheme是简单地将客户端的/etc/hosts文件中的FQDN硬编码? (但是,再次,这应该是我们的DHCP服务器的工作,不是吗?)
完全可以改变启动时服务的启动顺序。 有关运行级别如何工作以及如何更改启动脚本运行顺序的信息,请参阅www.debian.org 。
如果您希望在获得新的DHCP租约时重新启动puppet,则可以在cvar作业中定期检查/var/lib/dhcp.leases中的新dhcp租约,并在发生更改时重新启动。