ansible批量修改NTP配置

网络组同学通知我有一批虚拟机的ntp配置是错的,时间不能同步,需要修改ntp服务器配置用来同步时间,使用ansible处理完了,现在做个总结。

ntp同步的方式

ntp同步时间有多种方式,一种是直接向ntp服务器同步,另一种是启动本机的ntp服务,定时向上级ntp服务器同步。

使用ntpdate配合crontab向服务器同步

[root@clientlinux ~]# ntpdate [-dv] [NTP IP/hostname]
选项与参数:
-d :进入除错模式 (debug) ,可以显示出更多的有效信息。
-v :有较多讯息的显示。

[root@clientlinux ~]# ntpdate 192.168.100.254
28 Jul 17:19:33 ntpdate[3432]: step time server 192.168.100.254 offset -2428.396146 sec
# 最后面会显示微调的时间有多少 (offset),因为鸟哥这部主机时间差很多,所以秒数...
[root@clientlinux ~]# date; hwclock -r
四  7月 28 17:20:27 CST 2011
公元2011年07月28日 (周四) 18时19分26秒  -0.752303 seconds
# 知道鸟哥想要表达什么吗?对啊!还得 hwclock -w 写入 BIOS 时间才行啊!

[root@clientlinux ~]# vim /etc/crontab
# 加入这一行去!
10 5 * * * root (/usr/sbin/ntpdate tock.stdtime.gov.tw && /sbin/hwclock -w) &> /dev/null

使用 crontab 之后,每天 5:10 Linux 系统就会自动的进行网络校时啰!这个方式的特点是简单,但是仅适合不要启动 NTP服务器的情况。因为 NTP 服务器本来就会与上层时间服务器进行时间的同步化, 所以在预设的情况下,NTP 服务器不可以使用 ntpdate !也就是说 ntpdate 与 ntpd 不能同时启用的。

启动ntp服务器,向上层服务器同步本地时钟

本文使用的就是这种方法

restrict 10.10.255.1
restrict 10.10.255.2

server 10.10.255.1  iburst minpoll 3 maxpoll 4 prefer
server 10.10.255.2  iburst minpoll 3 maxpoll 4 prefer

其中10.10.255.1, 10.10.255.2就是公司提供的上级ntp服务器。
解释一下,server 10.10.255.1 iburst minpoll 3 maxpoll 4 prefer 是为了配置本机ntp服务器的上级服务器;
restrict 10.10.255.1 是为了放行服务器到本机的权限。
相比crontab方式,明显这种方式会更好,因为经过配置几秒就会进行一次同步,而且有更高级的配置可以用,比如可以配置多个上层服务器等。

修改之后重启ntp服务,
service ntpd restart
centos7也可以使用
systemctl restart ntpd

解决方案

当然不能一个个改,当然使用ansible大杀器了。
ntp_conf.yml

---
- hosts: xct9
  become: yes
  gather_facts: false
  max_fail_percentage: 50
  serial: "100%"
  vars:
        ntp_server_all: {
                'bj2b': {
                        "server1": "10.9.255.1",
                        "server2": "10.9.255.2"
                },
                'bj2c': {
                        "server1": "10.10.255.1",
                        "server2": "10.10.255.2"
                },
                'bj2d': {
                        "server1": "10.19.255.1",
                        "server2": "10.19.255.2"
                }
        }
        ntp_server1: "{{ ntp_server_all.bj2b.server1 }}"
        ntp_server2: "{{ ntp_server_all.bj2b.server2 }}"
  tasks:
  - name: set ntp restrict 1
    lineinfile:
        dest: /etc/ntp.conf
        regexp: '^restrict 10\.[0-9]{1,3}\.255\.1'
        line: restrict {{ ntp_server1}}
        #create: yes
        owner: root
        group: root

  - name: set ntp restrict 2
    lineinfile:
        dest: /etc/ntp.conf
        regexp: '^restrict 10\.[0-9]{1,3}\.255\.2'
        line: restrict {{ ntp_server2}}
        #create: yes
        owner: root
        group: root
  - name: set ntp server 1
    lineinfile:
        dest: /etc/ntp.conf
        #regexp: '^restrict 10\.[0-9]{1,3}\.255\.1'
        regexp: '^server 10\.[0-9]{1,3}\.255\.1 iburst minpoll 3 maxpoll 4 prefer'
        line: 'server {{ ntp_server1}}  iburst minpoll 3 maxpoll 4 prefer'
        #create: yes
        owner: root
        group: root

  - name: set ntp server 2
    lineinfile:
        dest: /etc/ntp.conf
        #regexp: '^restrict 10\.[0-9]{1,3}\.255\.2'
        regexp: '^server 10\.[0-9]{1,3}\.255\.2 iburst minpoll 3 maxpoll 4 prefer'
        line: 'server {{ ntp_server2}}  iburst minpoll 3 maxpoll 4 prefer'
        #create: yes
        owner: root
        group: root
  - name: restart ntpd
    command: service ntpd restart

只要修改服务器所在的hosts,和region就可以了

ntp服务器配置

利用 server 设定上层 NTP 服务器

上层 NTP 服务器的设定方式为:

server [IP or hostname] [prefer]
在 server 后端可以接 IP 或主机名,鸟哥个人比较喜欢使用 IP 来设定说!至于那个 perfer 表示『优先使用』的服务器啰~有够简单吧!

利用 restrict 来管理权限控制

在 ntp.conf 档案内可以利用『 restrict 』来控管权限,这个参数的设定方式为:

restrict [你的IP] mask [netmask_IP] [parameter]
其中 parameter 的参数主要有底下这些:

ignore: 拒绝所有类型的 NTP 联机;
nomodify: 客户端不能使用 ntpc 与 ntpq 这两支程序来修改服务器的时间参数, 但客户端仍可透过这部主机来进行网络校时的;
noquery: 客户端不能够使用 ntpq, ntpc 等指令来查询时间服务器,等于不提供 NTP 的网络校时啰;
notrap: 不提供 trap 这个远程事件登录 (remote event logging) 的功能。
notrust: 拒绝没有认证的客户端。
那如果你没有在 parameter 的地方加上任何参数的话,这表示『该 IP 或网段不受任何限制』的意思喔!一般来说,我们可以先关闭 NTP 的权限,然后再一个一个的启用允许登入的网段。

使用ntpq查看时钟同步状态

[root@www ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*tock.stdtime.go 59.124.196.87    2 u   19  128  377   12.092   -0.953   0.942
+59-124-196-83.H 59.124.196.86    2 u    8  128  377   14.154    7.616   1.533
+59-124-196-84.H 59.124.196.86    2 u    2  128  377   14.524    4.354   1.079

这个 ntpq -p 可以列出目前我们的 NTP 与相关的上层 NTP 的状态,上头的几个字段的意义为:
remote:亦即是 NTP 主机的 IP 或主机名啰~注意最左边的符号如果有『 * 』代表目前正在作用当中的上层 NTP
如果是『 + 』代表也有连上线,而且可作为下一个提供时间更新的候选者。

refid:参考的上一层 NTP 主机的地址
st:就是 stratum 阶层啰!
when:几秒钟前曾经做过时间同步化更新的动作;
poll:下一次更新在几秒钟之后;
reach:已经向上层 NTP 服务器要求更新的次数
delay:网络传输过程当中延迟的时间,单位为 10^(-6) 秒
offset:时间补偿的结果,单位与 10^(-3) 秒
jitter:Linux 系统时间与 BIOS 硬件时间的差异时间, 单位为 10^(-6) 秒。

事实上这个输出的结果告诉我们,时间真的很准了啦!因为差异都在 0.001 秒以内, 可以符合我们的一般使用了。另外,你也可以检查一下你的 BIOS 时间与 Linux 系统时间的差异, 就是 /var/lib/ntp/drift 这个档案的内容,就能了解到咱们的 Linux 系统时间与 BIOS 硬件时钟到底差多久?单位为 10^(-6) 秒啦!
找到了一台快4分钟左右的机器,同步之后发现时间不是直接同步后一丝不差的,而是每次同步offset时间差减少几毫秒,这应该是为了防止正在运行的程序出问题,否则计时之类的程序肯定要出问题了。

参考:

  1. http://cn.linux.vbird.org/linux_server/0440ntp.php#server
  2. http://blog.csdn.net/iloli/article/details/6431757
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,383评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,522评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,852评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,621评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,741评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,929评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,076评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,803评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,265评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,582评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,716评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,395评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,039评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,027评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,488评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,612评论 2 350

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,637评论 18 139
  • 本文章仅作为个人笔记 CDH官网地址:https://www.cloudera.com/ CDH镜像地址: c...
    草丛里的黄盖阅读 1,933评论 2 2
  • 1 概述 linux服务器在提供服务时,要和其他机器进行请求的交互,实际生产环境中,可能因为时间不同步,导致了服务...
    ghbsunny阅读 1,317评论 0 1
  • 当本机时间不准确时,我们需要对时间进行校准,那么我们就需要在互联网上找到一个可以提供我们准确时间的服务器然后通过一...
    经纶先生阅读 8,351评论 1 7
  • 1.CDH简单介绍? CDH是什么?hadoop是一个开源项目,所以很多公司在这个基础进行商业化,不收费的Hado...
    StoneHeart阅读 9,976评论 1 8