Como posso criar um módulo Puppet que conserte o tempo? [duplicado]

0

Eu escrevi um módulo Puppet que corrige o tempo via NTP, mas isso só funciona no servidor com um pequeno deslocamento NTP.

Às vezes, há servidores com um deslocamento de tempo maior que 10 minutos por vários motivos.

Eu quero fazer um módulo Puppet que execute exec "serviço ntpd stop; ntpdate ntp3.domain.local; serviço ntpd start" quando o deslocamento ntp for muito alto, para forçar a correção do tempo.

Como posso ver se o deslocamento NTP é muito alto para dizer ao Puppet para executar este comando? Ou existem soluções melhores?

    
por ujjain 19.09.2013 / 23:10

1 resposta

1

service ntpd stop; ntpdate ntp3.domain.local; service ntpd start

é definitivamente a solução errada para este problema. Use a opção -g para ntpd :

   -g     Normally, ntpd exits with a message to the  system  log  if  the
          offset  exceeds the panic threshold, which is 1000 s by default.
          This option allows the time to  be  set  to  any  value  without
          restriction; however, this can happen only once.  If the thresh‐
          old is exceeded after that, ntpd will exit with a message to the
          system log.  This option can be used with the -q and -x options.

Combine isso com a opção iburst como slm sugerido, porque sem isso seria necessário ntpd ages para corrigir uma diferença tão grande. Geralmente, ele tenta alterar a hora do sistema apenas em etapas muito pequenas, para que os aplicativos dependentes do tempo não fiquem confusos, mas a opção iburst mudará isso.

Você ainda terá que garantir que o Puppet reinicie automaticamente ntpd depois que ele entrar em pane, porque, de acordo com a manpage, ele consertará o tempo uma vez e depois morrerá mesmo assim.

    
por 19.09.2013 / 23:42

Tags