Puppet在没有时钟的设备上启动?

时间:2018-02-15 17:35:03

标签: puppet upstart

我在Debian 14.04嵌入式系统上使用upstart启动puppet代理:

description "Puppet Agent"

start on started 2klic-gateway
stop on runlevel [!2345]

respawn

pre-start script
    if [ ! -f /var/lib/sc2klic/system.json ]; then
        stop ; exit 0
    fi
    puppet config set certname "$(hostname)"
end script

exec /usr/local/bin/puppet agent --no-daemonize

设备或至少此版本没有硬件时钟。所以系统从1970年1月1日开始。

当我查看/var/log/upstart/puppet-agent.log时,我一遍又一遍地看到这个错误:

ESC[1;31mError: Could not parse application options: copyright with a year after 1972 is very strange; did you accidentally add or subtract two years?ESC[0m

是否可以在没有正确日期的情况下初始化木偶代理?

Puppet Agent版本4.10.1

1 个答案:

答案 0 :(得分:0)

这个错误似乎与文档有关,所以我不知道它是否应该在这里出错。我建议pull-request做一个例外,在这种情况下不会触发。

那说我们知道如果1970年的设备不在线,那么木偶就不能用了。

作为解决方法,我将以下内容添加到upstart pre-start脚本中:

while [[ $(date +%Y) == "1970" ]]
do
    sleep 30
done

这样我们就可以让木偶等到设备连接到NTP服务器。