开发者社区> 陈天刚> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

CentOS7搭建时间服务器-chrony(不坑)

简介: 标签(linux): chrony 笔者Q:972581034 交流群:605799367。有任何疑问可与笔者或加群交流 之前centos6我们一直用的ntp时间服务器,虽然到CentOS7上也可以装ntp。
+关注继续查看

标签(linux): chrony

笔者Q:972581034 交流群:605799367。有任何疑问可与笔者或加群交流

之前centos6我们一直用的ntp时间服务器,虽然到CentOS7上也可以装ntp。但是各种坑啊。这次换一个时间同步工具---->chrony

=========================环境========================

server端

[root@zabbix ~]# hostname
zabbix
[root@zabbix ~]# hostname -I
10.0.0.120 172.16.1.120 

先说下环境,我这里是用ansible批量执行的。server端为外网为10.0.0.120。
目标是让客户端四台机器做到时间同步,一秒不差

小提示:在利用ansible批量分发文件的时候,覆盖文件是一件很危险的事,如果原文件存在,最好先备份。其实不管是ansible还是其它操作,覆盖都是很危险的
[root@zabbix ~]# cat /etc/ansible/hosts
[client]
172.16.1.51
172.16.1.52
172.16.1.53
172.16.1.250

防火墙关闭:

[root@zabbix ~]# systemctl status firewalld.service 
???firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

selinux关闭:

[root@zabbix ~]# getenforce 
Disabled
[root@localhost ~]# systemctl status chrony  
● chrony.service  
   Loaded: not-found (Reason: No such file or directory)  
   Active: inactive (dead)  

========================服务端=========================

1.安装chrony(所有机器)

yum install chrony -y

2.启动chrony

[root@zabbix ~]# systemctl start chronyd.service 
[root@zabbix ~]# systemctl status chronyd.service 
???chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2017-05-27 11:47:43 CST; 4s ago

3.编辑配置文件(注意:现在是服务器端的修改)

     22 allow 10.0.0.0/24  
     23   
     24 # Listen for commands only on localhost.  
     25 bindcmdaddress 127.0.0.1  
     26 bindcmdaddress ::1  
     27   
     28 # Serve time even if not synchronized to any NTP server.  
     29 local stratum 10  

#第22行设置为本网段
#第29行的注释取消

4.查看配置文件如下

[root@zabbix ~]# egrep -v "#|^$" /etc/chrony.conf 
server ntp1.aliyun.com
server time1.aliyun.com
stratumweight 0
driftfile /var/lib/chrony/drift
rtcsync
makestep 10 3
allow 10.0.0.0/24
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
local stratum 10
keyfile /etc/chrony.keys
commandkey 1
generatecommandkey
noclientlog
logchange 0.5
logdir /var/log/chrony

5.重启时间同步服务

[root@zabbix ~]# systemctl restart chronyd.service   

======================客户端=====================

方法一

客户端的配置文件是同一个文件(/etc/chrony.conf)

1.删掉哪些没用的server xxxxxxxxxx iburst

1 # Use public servers from the pool.ntp.org project.  
2 # Please consider joining the pool (http://www.pool.ntp.org/j    oin.html).  
3 server  10.0.0.120      iburst  
4 # Ignore stratum in source selection.  

2.在server端把配置文件编辑好然后用ansible批量分发过去

[root@zabbix ~]# ansible client -m copy -a "src=/root/chrony.conf dest=/etc/"
172.16.1.250 | SUCCESS => {
    "changed": true, 
    "checksum": "52bda81d895de3c7c54886d342e5eec074df757e", 
    "dest": "/etc/chrony.conf", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "aee9cc7faa70a0c189033cdb8692e4b1", 
    "mode": "0644", 
    "owner": "root", 
    "size": 1038, 
    "src": "/root/.ansible/tmp/ansible-tmp-1495860905.35-183232559888238/source", 
    "state": "file", 
    "uid": 0
}
172.16.1.53 | SUCCESS => {
    "changed": true, 
    "checksum": "52bda81d895de3c7c54886d342e5eec074df757e", 
    "dest": "/etc/chrony.conf", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "aee9cc7faa70a0c189033cdb8692e4b1", 
    "mode": "0644", 
    "owner": "root", 
    "size": 1038, 
    "src": "/root/.ansible/tmp/ansible-tmp-1495860905.34-134007063835838/source", 
    "state": "file", 
    "uid": 0
}
172.16.1.51 | SUCCESS => {
    "changed": true, 
    "checksum": "52bda81d895de3c7c54886d342e5eec074df757e", 
    "dest": "/etc/chrony.conf", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "aee9cc7faa70a0c189033cdb8692e4b1", 
    "mode": "0644", 
    "owner": "root", 
    "size": 1038, 
    "src": "/root/.ansible/tmp/ansible-tmp-1495860905.43-104570916452677/source", 
    "state": "file", 
    "uid": 0
}
172.16.1.52 | SUCCESS => {
    "changed": true, 
    "checksum": "52bda81d895de3c7c54886d342e5eec074df757e", 
    "dest": "/etc/chrony.conf", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "aee9cc7faa70a0c189033cdb8692e4b1", 
    "mode": "0644", 
    "owner": "root", 
    "size": 1038, 
    "src": "/root/.ansible/tmp/ansible-tmp-1495860905.43-40575778655199/source", 
    "state": "file", 
    "uid": 0
}

3.启动同步服务,防火墙也需要关闭

[root@zabbix ~]# ansible client -m shell -a "systemctl start chronyd.service"
172.16.1.53 | SUCCESS | rc=0 >>


172.16.1.250 | SUCCESS | rc=0 >>


172.16.1.52 | SUCCESS | rc=0 >>


172.16.1.51 | SUCCESS | rc=0 >>

4.注意客户端时间同步定时任务关闭

[root@zabbix ~]# ansible client -m shell -a "crontab -l"
172.16.1.51 | SUCCESS | rc=0 >>


172.16.1.250 | SUCCESS | rc=0 >>


172.16.1.53 | SUCCESS | rc=0 >>


172.16.1.52 | SUCCESS | rc=0 >>

5.Centos7依然可以用ntpdate命令同步时间

[root@zabbix ~]# ansible client -m shell -a "ntpdate 10.0.0.120"
172.16.1.53 | SUCCESS | rc=0 >>
27 May 13:05:57 ntpdate[26817]: adjust time server 10.0.0.120 offset -0.001686 sec

172.16.1.250 | SUCCESS | rc=0 >>
27 May 13:05:57 ntpdate[17419]: adjust time server 10.0.0.120 offset -0.004419 sec

172.16.1.52 | SUCCESS | rc=0 >>
27 May 13:05:57 ntpdate[50111]: adjust time server 10.0.0.120 offset -0.004410 sec

172.16.1.51 | SUCCESS | rc=0 >>
27 May 13:05:57 ntpdate[114089]: adjust time server 10.0.0.120 offset -0.000597 sec

6.查看时间,现在已经都同步了,一秒不差

[root@zabbix ~]# ansible client -m shell -a "date"
172.16.1.250 | SUCCESS | rc=0 >>
Sat May 27 13:06:04 CST 2017

172.16.1.51 | SUCCESS | rc=0 >>
Sat May 27 13:06:04 CST 2017

172.16.1.53 | SUCCESS | rc=0 >>
Sat May 27 13:06:04 CST 2017

172.16.1.52 | SUCCESS | rc=0 >>
Sat May 27 13:06:04 CST 2017

方法二:放入定时任务

[root@zabbix ~]# ansible client -m cron -a "name='time sync' minute=*/5 job='/usr/sbin/ntpdate 10.0.0.120 &>/dev/null'"
172.16.1.51 | SUCCESS => {
    "changed": true, 
    "envs": [], 
    "jobs": [
        "time sync"
    ]
}
172.16.1.52 | SUCCESS => {
    "changed": true, 
    "envs": [], 
    "jobs": [
        "time sync"
    ]
}
172.16.1.53 | SUCCESS => {
    "changed": true, 
    "envs": [], 
    "jobs": [
        "time sync"
    ]
}
172.16.1.250 | SUCCESS => {
    "changed": true, 
    "envs": [], 
    "jobs": [
        "time sync"
    ]
}

[root@zabbix ~]# ansible client -m shell -a "crontab -l"
172.16.1.51 | SUCCESS | rc=0 >>
#Ansible: time sync
*/5 * * * * /usr/sbin/ntpdate 10.0.0.120 &>/dev/null

172.16.1.52 | SUCCESS | rc=0 >>
#Ansible: time sync
*/5 * * * * /usr/sbin/ntpdate 10.0.0.120 &>/dev/null

172.16.1.53 | SUCCESS | rc=0 >>
#Ansible: time sync
*/5 * * * * /usr/sbin/ntpdate 10.0.0.120 &>/dev/null

172.16.1.250 | SUCCESS | rc=0 >>
#Ansible: time sync
*/5 * * * * /usr/sbin/ntpdate 10.0.0.120 &>/dev/null

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
ubuntu简单搭建nfs tftp服务器
ubuntu简单搭建nfs tftp服务器
148 0
云服务器如何搭建 SVN 服务器
SVN是一个版本控制系统,相对于的 RCS 、 CVS ,采用了分支管理系统,它的设计目标就是取代 CVS 。 一、安装SVN yum install -y subversion 二、创建SVN版本库 创建项目版本库 mkdir -p /data/svn/myproject svnadmin cr.
2477 0
ubuntu完美搭建git服务器【转】
转自:http://blog.csdn.net/tommy_wxie/article/details/38779667最近公司项目需要用到Git来管理项目,正好逢周末花了点时间在虚拟机的unbuntu系统中搭建了下git的服务器,由于搭建过程中多多少少遇到了一些小问题,再因为个人记性不太好,所以在这里记录下来,以备不时之需。
969 0
ubuntu完美搭建git服务器【转】
转自:http://blog.csdn.net/tommy_wxie/article/details/38779667 最近公司项目需要用到Git来管理项目,正好逢周末花了点时间在虚拟机的unbuntu系统中搭建了下git的服务器,由于搭建过程中多多少少遇到了一些小问题,再因为个人记性不太好,所以在这里记录下来,以备不时之需。
1138 0
ubuntu下搭建nfs服务器
1.首先查看系统中是否安装了nfs服务,命令为:dpkg -l | grep nfs  2. 如果没有安装如上文件 则在线安装nfs服务和客户端及端口映射程序 命令为: apt-get install nfs-kernel-server nfs-common portmap  在这里的portmap被rpcbind替代3.安装好后修改 共享的配置文件,命令为:vim /etc/exp
1666 0
+关注
陈天刚
数据库相关技术专家
78
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载