एक सर्वर जिसका समय इतना अलग है के खिलाफ सिंक नहीं करने का कारण यहां प्रलेखित है :
5.1.1.4। यदि संदर्भ समय बदलता है तो क्या होगा?
आदर्श रूप से संदर्भ समय दुनिया में हर जगह समान है। एक बार सिंक्रनाइज़ होने के बाद, ऑपरेटिंग सिस्टम की घड़ी और संदर्भ घड़ी के बीच कोई अप्रत्याशित परिवर्तन नहीं होना चाहिए। इसलिए, स्थिति को संभालने के लिए NTP के पास कोई विशेष तरीका नहीं है।
इसके बजाय, ntpd की प्रतिक्रिया स्थानीय घड़ी और संदर्भ समय के बीच ऑफसेट पर निर्भर करेगी। एक छोटे से ऑफसेट के लिए ntpd हमेशा की तरह स्थानीय घड़ी को समायोजित करेगा; छोटे और बड़े ऑफ़सेट्स के लिए, ntpd थोड़ी देर के लिए संदर्भ समय को अस्वीकार कर देगा। उत्तरार्द्ध मामले में ऑपरेशन सिस्टम की घड़ी अंतिम सुधारों के साथ जारी रहेगी, जबकि नए संदर्भ समय को अस्वीकार किया जा रहा है। कुछ समय बाद, छोटे ऑफ़सेट्स (एक सेकंड से भी कम) को स्लीव (धीरे-धीरे समायोजित) किया जाएगा, जबकि बड़े ऑफ़सेट्स के कारण घड़ी को आगे बढ़ाया जाएगा (नए सिरे से सेट किया जाएगा)। बहुत बड़े लोगों को खारिज कर दिया जाता है, और ntpd खुद को समाप्त कर देगा, यह मानते हुए कि बहुत अजीब बात हुई होगी।
मेरे वर्तमान NTP कॉन्फ़िगरेशन में, द्वारा नियंत्रित भी puppet
, मैं सर्वर के साथ सिंक्रनाइज़ेशन को ntp.conf
फाइल, उपयोग tinker panic
, और डेमन सेटिंग्स में ( /etc/sysconfig/ntpd
), जैसा कि ntpd(8)
मैनपेज में वर्णित है :
-जी आम तौर पर, अगर सिस्टम ऑफसेट से पैनिक सीमा से अधिक है, जो डिफ़ॉल्ट रूप से 1000 s है, तो ntpd सिस्टम लॉग में एक संदेश के साथ बाहर निकलता है। यह विकल्प बिना किसी प्रतिबंध के समय को निर्धारित करने की अनुमति देता है; हालाँकि, यह केवल एक बार ही हो सकता है। यदि उसके बाद सीमा पार हो गई है, तो ntpd सिस्टम लॉग में एक संदेश के साथ बाहर निकल जाएगा। इस विकल्प का उपयोग -q और -x विकल्पों के साथ किया जा सकता है।
मैं ऐसा इसलिए करता हूं क्योंकि मैं उस NTP सर्वर पर भरोसा कर सकता हूं जिसे मैं कनेक्ट कर रहा हूं।
क्लाइंट पर लागू मॉड्यूल का प्रासंगिक भाग निम्नानुसार है:
class ntp (
$foo
$bar
...
){
$my_files = {
'ntp.conf' => {
path => '/etc/ntp.conf',
content => template("ntp/ntp.conf.$template.erb"),
selrole => 'object_r',
seltype => 'net_conf_t',
require => Package['ntp'], },
'ntp-sysconfig' => {
path => '/etc/sysconfig/ntpd',
source => 'puppet:///modules/ntp/ntp-sysconfig',
require => Package['ntp'], },
...
}
$my_files_defaults = {
ensure => file,
owner => 'root',
group => 'root',
mode => '0644',
selrange => 's0',
selrole => 'object_r',
seltype => 'etc_t',
seluser => 'system_u',
}
create_resources(file, $my_files, $my_files_defaults)
exec { 'ntp initial clock set':
command => '/usr/sbin/ntpd -g -q -u ntp:ntp',
refreshonly => true,
timeout => '-1',
subscribe => File['/etc/ntp.conf'],
}
}
और संदर्भित फ़ाइलों की सामग्री हैं:
$ cat devops/puppet/modules/ntp/files/ntp-sysconfig
# Drop root to id 'ntp:ntp' by default.
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g -a"
तथा:
$ cat devops/puppet/modules/ntp/templates/ntp.conf.RedHat.erb
# HEADER: This file was autogenerated by puppet.
# HEADER: While it can still be managed manually, it
# HEADER: is definitely not recommended.
tinker panic 0
<% server.each do |ntpserver| -%>
server <%= ntpserver %> autokey
<% end -%>
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
crypto pw hunter2
crypto randfile /dev/urandom
keysdir /etc/ntp
यहां hiera
हिस्सा गायब है, लेकिन आपको यह विचार मिलता है।
tinker panic 0