저는 NTP를 통해 시간을 수정할 수 있는 Puppet 모듈을 작성했지만 이는 NTP 오프셋이 작은 서버에서만 작동합니다.
때때로 여러 가지 이유로 인해 일부 서버에서는 10분 이상의 시간 편차가 발생합니다.
ntp 오프셋이 너무 높을 때 exec "service ntpd stop; ntpdate ntp3.domain.local; service ntpd start"를 실행하여 시간을 강제로 수정하는 Puppet 모듈을 만들고 싶습니다.
Puppet에게 이 명령을 실행하도록 지시할 수 있도록 NTP 오프셋이 너무 높은지 어떻게 확인할 수 있습니까? 아니면 더 나은 해결책이 있습니까?
답변1
service ntpd stop; ntpdate ntp3.domain.local; service ntpd start
확실히 이 문제에 대한 잘못된 해결책입니다. 이 -g
옵션을 사용하십시오 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.
이것을 iburst
slm이 제안한 옵션과 결합하십시오. 왜냐하면 이 옵션이 없으면 ntpd
그렇게 큰 차이를 수정하는 데 오랜 시간이 걸리기 때문입니다. 일반적으로 시간 관련 응용 프로그램이 혼동되지 않도록 아주 작은 단계로만 시스템 시간을 변경하려고 시도하지만 이 iburst
옵션이 이를 변경합니다.
ntpd
Puppet이 패닉 이후 자동으로 다시 시작되는지 확인해야 합니다 . 맨페이지에 따르면 Puppet은 한 번 복구된 다음 여전히 죽기 때문입니다.