已复制
全屏展示
复制代码

centos7 时钟同步服务部署


· 3 min read

在安装集群时,要求集群中的所有机器时间必须同步,这时需要chrony来做时间同步。安装 chrony 可以使用 ansible 来批量配置,也可以手动修改,实验环境如下:

主节点:node1,从节点:node2、node3,主节点作为服务端,从节点作为客户端。

hostname IP
node1 192.168.1.110
node2 192.168.1.120
node3 192.168.1.130

一. 手动安装

1.1 所有节点安装chrony

在所有节点安装 chrony 服务。

sudo yum install -y chrony

1.2 在master上配置server

node1上注释掉默认的server配置/etc/chrony.conf,添加172.22.0.1,表示自己是服务端的角色。

# server 0.rhel.pool.ntp.org iburst
# server 1.rhel.pool.ntp.org iburst
# server 2.rhel.pool.ntp.org iburst
# server 3.rhel.pool.ntp.org iburst
server 172.22.0.1 iburst

1.3 在master上配置同步

node1上做如下配置/etc/chrony.confallow 0.0.0.0/0表示允许所有的客户端来同步时间, local stratum 10表示没有外部时间同步源的时候也可以向客户端提供同步服务。

allow 0.0.0.0/0
local stratum 10

1.4 在slave上配置server的ip

node2、node3上配置/etc/chrony.conf

# server 0.rhel.pool.ntp.org iburst
# server 1.rhel.pool.ntp.org iburst
# server 2.rhel.pool.ntp.org iburst
# server 3.rhel.pool.ntp.org iburst
server 192.168.1.110 iburst

1.5 所有节点配置

node1、node2、node3上同时配置时区,然后重启服务。

# 配置时区
timedatectl set-timezone Asia/Shanghai

# 启动服务
systemctl restart chronyd
systemctl enable chronyd
systemctl status chronyd

1.6 验证同步

# 在node2或者node3上手动修改时间,等待一段时间后自动和node1进行同步(如果时间相差太多的话,需要更长时间来同步)
sudo date -s "2019-10-22 15:05:37"

# 如果相差时间太多的话,重启全部chronyd服务即可很快同步。
date

二. 批量安装

2.1 安装ansible工具

找一个管理节点安装ansible,比如在node1上

# 安装ansible
sudo yum install -y ansible

# ansible的配置略

2.2 批量安装chrony

只需将192.168.1.110替换成实际的 server 的 IP 地址即可,其他不需要修改。

# 安装chrony
ansible all -m shell -a "yum install -y chrony" --become


# 统一修改时区
ansible all -m shell -a "timedatectl set-timezone Asia/Shanghai" --become


# 修改配置一
ansible all -m shell -a "sed -i 's/^server\(.*\)iburst$/# server\1iburst/g' /etc/chrony.conf" --become
ansible all -m shell -a "sed -i '/# Record the rate/i\server 192.168.1.110 iburst\n' /etc/chrony.conf" --become  


# 修改配置二
sudo sed -i '/#local stratum 10/a\local stratum 10' /etc/chrony.conf
sudo sed -i '/#allow 192.168.0.0/a\allow 0.0.0.0/0' /etc/chrony.conf


# 重启服务,查看时间是否同步
ansible all -m shell -a "systemctl restart chronyd" --become
ansible all -m shell -a "systemctl enable chronyd" --become
ansible all -m shell -a "date"

三. 常用工具

# 查看时间同步服务器列表
chronyc -n sources
chronyc -n sources -v

# 查看正在使用的时间服务器状态
chronyc -n sourcestats

# 查看本机的时间同步状态
chronyc tracking
🔗

文章推荐